Core WebAPI配置Swagger
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)
1 2 3 4 5 6 7 8 | services.AddSwaggerGen(s => { s.SwaggerDoc( "swagger_v1" , new Microsoft.OpenApi.Models.OpenApiInfo() { Title = "CoreAPI接口" , //标题 Version = "v1" //版本号 }); }); |
- 引用Swagger中间件
1 2 3 4 5 6 | app.UseSwagger(); app.UseSwaggerUI(s => { s.SwaggerEndpoint( "/swagger/swagger_V1/swagger.json" , "MyAPIDoc_v1" ); //s.RoutePrefix = string.Empty; }); |
如果要在应用根目录使用SwaggerUI,请将RoutePrefix属性设置为空字符串
- Swagger高级应用使用
- wagger为API文档增加说明信息,在AddSwaggerGen方法进行添加作者、许可证和说明等信息……
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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:
1 | 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这样来获取
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 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的配置~~
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 历时 8 年,我冲上开源榜前 8 了!
· 物流快递公司核心技术能力-海量大数据处理技术
· 四大AI编程工具组合测评
· 关于能否用DeepSeek做危险的事情,DeepSeek本身给出了答案
· 如何在 Github 上获得 1000 star?