.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个)
猜您可能还喜欢
- .Nuget Packages 太占C盘,删除后可以放到其他盘(1621)
- net core+webapi+nginx windows 服务器部署(1488)
- ASP.NET Core 配置 Swagger 显示接口注释描述信息(1232)
- vue调用接口后获取不到后端返回的Header响应头(1177)
- .net core 6.0 web API + SwaggerUI + IIS部署(1174)
- .net core 系列实例开发教程-权限管理系统功能介绍(1101)
- .net core 实例教程(十二)配置启用Swagger中的【Authorize】按钮(1069)
- .net core 实例教程(十一)生成JWT格式的token密码配置及代码(995)
- .net core 实例教程(十四)配置 Swagger 显示接口注释描述信息及支持版本控制(962)
- .net core 实例教程(三)仓储及领域服务功能实现(既实现用户表的增删改查接口)(946)
评论列表
发表评论
文章分类
文章归档
- 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支付方式总结(5876)
- 2.Windows 10休眠文件更改存储位置(3824)
- 3.各大搜索网站网站收录提交入口地址(3478)
- 4.ECharts仪表盘实例及参数使用详解(3431)
- 5.windows 10安装myeclipse 10破解补丁cracker.jar、run.bat闪退解决办法(3422)
- 6.HTML5 WebSocket与C#建立Socket连接实现代码(3179)
- 7.华为鸿蒙系统清除微信浏览器缓存方法(3171)
- 8.CERT_HAS_EXPIRED错误如何解决(2963)
- 9.Js异步async、await关键字详细介绍(lambda表达式中使用async和await关键字)(2599)
- 10.HBuilder编辑器格式化代码(2393)
