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的配置~~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现