.net core webapi教程-配置 Swagger 版本控制信息
本文讲解Swagger如果控制版本信息,实现效果如下图所示:


一、新建一个版本控制枚举类
namespace SignUp.Common.Enum
{
/// <summary>
/// Api不同版本
/// </summary>
public enum ApiVersions
{
V1,
V2
}
}
二、修改program.cs文件进行配置
builder.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
//option.AddAuthenticationHeader();
#region 添加SwaggerGen注释
// 使用反射获取xml文件,并构造出文件的路径
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
// 启用xml注释,该方法第二个参数启用控制器的注释,默认为false。
option.IncludeXmlComments(xmlPath, true);
//对action的名称进行排序,如果有多个,就可以看见效果了。
option.OrderActionsBy(o => o.RelativePath);
#endregion
});
app.UseSwaggerUI(c => {
foreach (string version in typeof(ApiVersions).GetEnumNames()) {
c.SwaggerEndpoint($"/swagger/{version}/swagger.json",$"极点招聘报名系统后台接口第【{version}】版本");
}
});
三、修改ApiController所属版本
/// <summary>
/// 前台用户登录相关接口
/// </summary>
[Route("api/[controller]/[action]")]
[ApiController]
//api版本控制代码
[ApiExplorerSettings(IgnoreApi = false ,GroupName = nameof(ApiVersions.V1))]
public class LoginController : ControllerBase
{
private readonly IRecruitDomainService recruitDomainService;
public LoginController(IRecruitDomainService recruitDomainService)
{
this.recruitDomainService = recruitDomainService;
}
}
猜您可能还喜欢
- .net core webapi教程-Swagger请求参数设置默认值(1927)
- .net core webapi教程-设置返回Json格式与Model大小写一致(1377)
- .net core webapi教程-配置 Swagger 显示接口注释及描述信息(1283)
- .net core webapi教程-设置日期型字段返回Json格式(1266)
- .net core webapi教程-IActionFilter使用详解 (1201)
- .net core webapi教程-Filter全局注册、控制器注册如何排除某些Action方法使其不生效(1097)
- .net core webapi教程-Swagger请求参数通过属性特性设置默认值(1070)
- .net core webapi教程-IExceptionFilter、IAsyncExceptionFilter使用详解 (1002)
- .net core webapi教程-Filter的多种注册方法(963)
- .net core webapi教程-使用log4net写文本日志(923)
评论列表
发表评论
文章分类
文章归档
阅读排行
- 1. Windows Server 2008 R2永久激活及Chew-WGA v0.9下载(13315)
- 2.Visual Studio 2017中安装visualSVN及使用详解(5230)
- 3.完美解决iis下JWplayer提示Error loading media: File could not be played错误(4068)
- 4.asp.net mvc+jquery easyui开发基础(一)模块首页及增加、修改、删除模块实现(3419)
- 5.Android avax.net.ssl.SSLPeerUnverifiedException: No peer certificate 解决方法(httpClient支持HTTPS的访问方式)(3265)
- 6..Net Mvc中使用Jquery EasyUI控件讲解(一)表格控件datagrid使用介绍(3015)
- 7.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(三)登录模块开发(2906)
- 8.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(七)权限管理模块之系统菜单动态生成(2904)
- 9.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(八)权限管理模块之权限管理实现(2515)
- 10. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(六)权限管理模块之初始数据准备(2488)
