.net core 实例教程(十四)配置 Swagger 显示接口注释描述信息及支持版本控制
本文源码下载地址:http://www.80cxy.com/Blog/ResourceView?arId=202403191532545995NAAqJh
系列教程地址:http://www.80cxy.com/Blog/ArticleView?arId=202403191517574161ay3s5V
本文记录如何给Swagger配置接口描述信息及接口版本控制,实现效果图如下:
一、新建配置扩展类
using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using SignUp.Common.Enum; namespace SignUp.Common.JWT { public static class SwaggerExtension { /// <summary> /// 接口描述说明 /// </summary> /// <param name="services"></param> public static void AddSwaggerExtension(this IServiceCollection services) { services.AddEndpointsApiExplorer(); services.AddSwaggerGen(option => { #region SwaggerGen版本控制 typeof(ApiVersions).GetEnumNames().ToList().ForEach(version => { option.SwaggerDoc(version, new Microsoft.OpenApi.Models.OpenApiInfo() { Title = $"极点招聘报名系统后台接口", Version = version, Description = $"接口描述{version}" }); }); #endregion #region 添加SwaggerGen注释 // 使用反射获取xml文件,并构造出文件的路径 //var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlFile = "SignUp.WebApi.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); // 启用xml注释,该方法第二个参数启用控制器的注释,默认为false。 option.IncludeXmlComments(xmlPath, true); //对action的名称进行排序,如果有多个,就可以看见效果了。 option.OrderActionsBy(o => o.RelativePath); #endregion }); } /// <summary> /// 接口版本控制 /// </summary> /// <param name="app"></param> public static void UseSwaggerExtension(this WebApplication app) { app.UseSwagger(); app.UseSwaggerUI(c => { foreach (string version in typeof(ApiVersions).GetEnumNames()) { c.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"极点招聘报名系统后台接口第【{version}】版本"); } }); } } }
二、配置接口描述信息
(一)修改接口项目属性,增加如下代码配置
这时候需要用到XML文档,因为它是通过XML来维护Swagger文档的一些信息。双击项目名称,进入如下配置页面
1
2
|
< GenerateDocumentationFile >true</ GenerateDocumentationFile > < NoWarn >$(NoWarn);1591</ NoWarn > |
(二)配置项目
在项目配置文件中增加如下配置代码
//Swagger版本控制、接口描述配置 services.AddSwaggerExtension();
(三)接口代码增加描述信息
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using SignUp.Common.ASPNETCore; using SignUp.Common.Commons; using SignUp.Common.Enum; using SignUp.Common.Filter; using SignUp.Domain.Service; using SignUp.Infrastructure; using SignUp.WebApi.ViewModels.Login; using System.Security.Claims; namespace SignUp.WebApi.Controllers { /// <summary> /// 系统管理相关接口 /// </summary> [Route("api/[controller]/[action]")] [ApiExplorerSettings(IgnoreApi = false, GroupName = nameof(ApiVersions.V1))] [ApiController] public class AdminLoginController : ControllerBase { private readonly ISystemDomainService _systemDomainService; public AdminLoginController(ISystemDomainService systemDomainService) { _systemDomainService = systemDomainService; } /// <summary> /// 管理用户登录 /// </summary> /// <remarks> /// 描述:通过用户名及用户密码登录系统 /// </remarks> /// <param name="req">接口参数</param> /// <returns></returns> /// <exception cref="ApplicationException"></exception> [HttpPost] [AllowAnonymous] [UnitOfWork(typeof(SignUpDbContext))] public async Task<ActionResult> AdminLogin(LoginRequest req) { return new JsonResult(await _systemDomainService.AdminLogin(req.UserName, req.Password)); } } }
三、接口版本控制配置
在Progarm.cs文件增加如下配置代码:
// Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwaggerExtension(); }
学习交流
附笔者学习 .net core开发时参考相关项目实例源码:asp.net core webapi项目实例源代码锦集下载(72个)
猜您可能还喜欢
- net core+webapi+nginx windows 服务器部署(1321)
- .Nuget Packages 太占C盘,删除后可以放到其他盘(1194)
- ASP.NET Core 配置 Swagger 显示接口注释描述信息(1094)
- vue调用接口后获取不到后端返回的Header响应头(963)
- .net core 系列实例开发教程-权限管理系统功能介绍(951)
- .net core 6.0 web API + SwaggerUI + IIS部署(911)
- .net core 实例教程(十二)配置启用Swagger中的【Authorize】按钮(831)
- .net core 实例教程(一)新建项目(795)
- .net core 实例教程(十四)配置 Swagger 显示接口注释描述信息及支持版本控制(782)
- .net 6中使用log4net写sqlserver数据库日志(756)
评论列表
发表评论
文章分类
文章归档
- 2025年3月 (1)
- 2024年6月 (2)
- 2024年5月 (2)
- 2024年4月 (4)
- 2024年3月 (30)
- 2024年1月 (4)
- 2023年12月 (2)
- 2023年11月 (4)
- 2023年10月 (4)
- 2023年9月 (6)
- 2023年3月 (2)
- 2023年2月 (1)
- 2023年1月 (1)
- 2022年12月 (1)
- 2022年9月 (21)
- 2022年8月 (10)
- 2022年7月 (3)
- 2022年4月 (1)
- 2022年3月 (13)
- 2021年8月 (1)
- 2021年3月 (1)
- 2020年12月 (42)
- 2020年11月 (7)
- 2020年10月 (5)
- 2020年8月 (1)
- 2020年6月 (1)
- 2020年3月 (2)
- 2019年12月 (8)
- 2019年11月 (3)
- 2019年9月 (1)
- 2019年4月 (1)
- 2019年3月 (6)
- 2019年2月 (1)
- 2018年7月 (7)
阅读排行
- 1.asp.net mvc内微信pc端、H5、JsApi支付方式总结(5702)
- 2.各大搜索网站网站收录提交入口地址(3201)
- 3.Windows 10休眠文件更改存储位置(3163)
- 4.ECharts仪表盘实例及参数使用详解(3095)
- 5.windows 10安装myeclipse 10破解补丁cracker.jar、run.bat闪退解决办法(2991)
- 6.HTML5 WebSocket与C#建立Socket连接实现代码(2865)
- 7.华为鸿蒙系统清除微信浏览器缓存方法(2777)
- 8.CERT_HAS_EXPIRED错误如何解决(2240)
- 9.Js异步async、await关键字详细介绍(lambda表达式中使用async和await关键字)(2187)
- 10.HBuilder编辑器格式化代码(2118)