.NetCore WebApi —— Swagger版本控制
程序员文章站
2022-04-09 09:02:14
上接:.NetCore WebApi——基于JWT的简单身份认证与授权(Swagger) 版本控制的好处是显而易见的,利用Swagger展示不同版本的API更能体现效果。 1.安装Nuget包:Microsoft.AspNetCore.Mvc.Versioning 2. 配置Startup类 2.1 ......
上接:.netcore webapi——基于jwt的简单身份认证与授权(swagger)
版本控制的好处是显而易见的,利用swagger展示不同版本的api更能体现效果。
1.安装nuget包:microsoft.aspnetcore.mvc.versioning
2. 配置startup类
2.1 添加新成员 ,用来获取api版本信息
/// <summary> /// api版本信息 /// </summary> private iapiversiondescriptionprovider provider;
2.2 在 configureservices 方法中注册服务
services.addapiversioning(option => { // 可选,为true时api返回支持的版本信息 option.reportapiversions = true; // 不提供版本时,默认为1.0 option.assumedefaultversionwhenunspecified = true; // 请求中未指定版本时默认为1.0 option.defaultapiversion = new apiversion(1, 0); }).addversionedapiexplorer(option => {
// 版本名的格式:v+版本号 option.groupnameformat = "'v'v"; option.assumedefaultversionwhenunspecified = true; }); this.provider = services.buildserviceprovider().getrequiredservice<iapiversiondescriptionprovider>();
2.3 遍历api版本信息,在原有的addswaggergen方法中循环处理:红色部分
// 注册swagger服务 services.addswaggergen(c => { // 多版本控制 foreach (var item in provider.apiversiondescriptions) { // 添加文档信息 c.swaggerdoc(item.groupname, new info { title = "corewebapi", version = item.apiversion.tostring(), description = "asp.net core webapi", contact = new contact { name = "jee", email = "xiaomaprincess@gmail.com", url = "https://www.cnblogs.com/jixiaosa/" } }); }
2.4 修改 configure 方法中的 swaggerui方法,同样做循环处理
// 配置swaggerui app.useswaggerui(c => { foreach (var item in provider.apiversiondescriptions) { //c.swaggerendpoint("/swagger/v1/swagger.json", "coreapi"); 单版本 c.swaggerendpoint($"/swagger/{item.groupname}/swagger.json", "coreapi"+item.apiversion); } c.routeprefix = string.empty; });
2.5 在控制器中应用
2.5.1 在test控制器中添加特性标签以及路由。 1.0版本
2.5.1 在value控制器中添加特性标签以及路由。 2.0版本
3. 启动项目查看效果
gif
github: https://github.com/xiaomaprincess/asp.netcore-webapi
上一篇: 你把我灌醉
推荐阅读
-
.netcore2.1 接口添加api-version版本控制
-
net core webapi多版本控制与swagger(nswag)配置教程
-
webapi多版本控制
-
ASP.NET Core WebApi版本控制的实现
-
.NetCore使用Swagger+API多版本控制的流程分析
-
.NetCore WebApi——Swagger简单配置
-
浅谈ASP.Net Core WebApi几种版本控制对比
-
.NetCore2.1 WebAPI新增Swagger插件
-
.netcore2.1 接口添加api-version版本控制
-
net core webapi多版本控制与swagger(nswag)配置教程