1、配置Swagger:
Swagger是一套接口文档的规范,通过这套规范,你只需要按照它的规范去定义接口以及接口相关的信息。再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端代码,以及在线接口调试页面等等。
- nuget管理安装程序包:Swashbuckle.AspNetCore,或者Nuget控制台命令安装:Install-Package SwashBuckle.AspNetCore -Version 5.0.0-rc4
-
注册服务:
- 在Startup中ConfigureServices里注册Swagger,之前已经提到过(https://www.cnblogs.com/zousc/p/12420998.html)
services.AddSwaggerGen(s => { s.SwaggerDoc("swagger_v1", new Microsoft.OpenApi.Models.OpenApiInfo() { Title = "CoreAPI接口", //标题 Version = "v1" //版本号 }); });
- 引用Swagger中间件
app.UseSwagger(); app.UseSwaggerUI(s => { s.SwaggerEndpoint("/swagger/swagger_V1/swagger.json", "MyAPIDoc_v1"); //s.RoutePrefix = string.Empty; });
如果要在应用根目录使用SwaggerUI,请将RoutePrefix属性设置为空字符串
-
Swagger高级应用使用
- wagger为API文档增加说明信息,在AddSwaggerGen方法进行添加作者、许可证和说明等信息……
services.AddSwaggerGen(s => { s.SwaggerDoc("swagger_v1", new Microsoft.OpenApi.Models.OpenApiInfo() { Title = "CoreAPI接口", //标题 Version = "v1",//版本号 Description="这里是文档说明", TermsOfService=new Uri("https://www.cnblogs.com/zousc/"), //作者信息 Contact=new Microsoft.OpenApi.Models.OpenApiContact() { Name="姓名", Email="邮箱", Url = new Uri("https://www.cnblogs.com/zousc/") }, //许可证 License=new Microsoft.OpenApi.Models.OpenApiLicense() { Name = "假装是许可证", Url = new Uri("https://www.cnblogs.com/zousc/") } }); });
到了这Swagger就能显示了,但是注释还不会显示,接下来启用XML注释 可使用以下方法启用 XML 注释:
- 右键单击“解决方案资源管理器”中的项目,然后选择“属性”
- 查看“生成”选项卡的“输出”部分下的“XML 文档文件”框
启用 XML 注释后会为未记录的公共类型和成员提供调试信息。如果出现很多警告信息 例如,以下消息指示违反警告代码 1591:
warning CS1591: Missing XML comment for publicly visible type or member ‘TodoController.GetAll()‘
注意: ?
- 对于 Linux 或非 Windows 操作系统,文件名和路径区分大小写。 例如,“SwaggerDoc.xml”文件在 Windows 上有效,但在 CentOS 上无效。 ?
- 获取应用程序路径,建议采用Path.GetDirectoryName(typeof(Program).Assembly.Location)这种方式或者·AppContext.BaseDirectory这样来获取
services.AddSwaggerGen(s => { s.SwaggerDoc("swagger_v1", new Microsoft.OpenApi.Models.OpenApiInfo() { Title = "CoreAPI接口", //标题 Version = "v1",//版本号 Description="这里是文档说明", TermsOfService=new Uri("这里是服务条款"), //作者信息 Contact=new Microsoft.OpenApi.Models.OpenApiContact() { Name="姓名", Email="邮箱", Url = new Uri("https://www.cnblogs.com/zousc/") }, //许可证 License=new Microsoft.OpenApi.Models.OpenApiLicense() { Name = "假装是许可证", Url = new Uri("https://www.cnblogs.com/zousc/") } }); // 为 Swagger JSON and UI设置xml文档注释路径 //获取应用程序所在目录(绝对,不受工作目录影响,建议采用此方法获取路径) var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location); var xmlPath = Path.Combine(basePath, "SwaggerDoc.xml"); s.IncludeXmlComments(xmlPath); });
- 访问Ip:端口/swagger/index.html
到这就完成了Swagger的配置~~