.NetCore WebApi —— Swagger版本控制
目录:
.NetCore WebApi——基于JWT的简单身份认证与授权(Swagger)
.NetCore WebApi —— 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(, );
}).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
多层架构版本:https://github.com/xiaoMaPrincess/.NetCoreWebApi
.NetCore WebApi —— Swagger版本控制的更多相关文章
- .NetCore WebApi——Swagger简单配置
在前后端分离的大环境下,API接口文档成为了前后端交流的一个重点.Swagger让开发人员摆脱了写接口文档的痛苦. 官方网址:https://swagger.io/ 在.Net Core WebApi ...
- .NetCore WebApi——基于JWT的简单身份认证与授权(Swagger)
上接:.NetCore WebApi——Swagger简单配置 任何项目都有权限这一关键部分.比如我们有许多接口.有的接口允许任何人访问,另有一些接口需要认证身份之后才可以访问:以保证重要数据不会泄露 ...
- Asp.NetCore WebApi 引入Swagger
一.创建一个Asp.NetCore WebApi 项目 二.引入NuGet包 SwashBuckle.AspNetCore 三.在项目属性配置中设置 四.修改项目的启动文件Startup.cs 1). ...
- .NetCore(.NET6)中使用swagger和swagger版本控制
一..NET6中使用swagger swagger支持 API 自动生成同步的在线文档,下面在.NET6中引入 1.建.NET6应用并建以下控制器 /// <summary> /// 订单 ...
- netcore webapi帮助文档设置
如何建 .netcore webapi 项目这个就不说了,这个都没有没必要看下去. 我这里是.netcore 2.0,虽然没测过1.0的,但想来差不多. 1.Nuget Packages安装,使用程序 ...
- 使用Swashbuckle.AspNetCore生成.NetCore WEBAPI的接口文档
一.问题 使用Swashbuckle.AspNetCore生成.NetCore WEBAPI的接口文档的方法 二.解决方案 参考文章:https://docs.microsoft.com/zh-cn/ ...
- .Net Webapi Swagger增加登录功能
.mytitle { background: #2B6695; color: white; font-family: "微软雅黑", "宋体", "黑 ...
- Asp.Net WebApi Swagger终极搭建
[PS:原文手打,转载说明出处,博客园] 关于为什么用Swagger 目前稍微有点规模的公司,已经从原先的瀑布流开发到了敏捷开发,实现前后端分离,为此后端工程师只关注写好Api即可,那程序员最讨厌的就 ...
- WebApi的版本控制
using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; using Sy ...
随机推荐
- Keras之注意力模型实现
学习的一个github上的代码,分析了一下实现过程.代码下载链接:https://github.com/Choco31415/Attention_Network_With_Keras 代码的主要目标是 ...
- SVN分支与主干合并
1.主干合并到分支 1在本地trunk中先update一下,有冲突的解决冲突,保证trunk和repository已经完全同步, 2.在/branches /MyProject上右键,依次选择”Tor ...
- JavaScript里处理数字的一些常用方法
1.toString() 把字符串转换为数值. let num = 123; console.log(typeof(num)); //number console.log(typeof(num.toS ...
- MYSQL之B+TREE索引原理
1.什么是索引? 索引:加速查询的数据结构. 2.索引常见数据结构 顺序查找: 最基本的查询算法-复杂度O(n),大数据量此算法效率糟糕. 二叉树查找:(binary tree search): O( ...
- Python(Head First)学习笔记:四
4 持久存储:文件存储.读写 数据保存到文件:在学习的过程中出现了一个问题,老是报一个错:SyntaxError: invalid syntax: 这个是语法错误,后来搜了下才知道是python2.7 ...
- 数据结构慕课PTA 05-树9 Huffman Codes
题目内容 In 1953, David A. Huffman published his paper "A Method for the Construction of Minimum-Re ...
- hibernate集成ehcahe进行缓存管理
ehcace是现在非常流行的缓存框架,有轻量.灵活.可扩展.支持集群/分布式等优点. 在项目中,使用ehcace可以对数据进行缓存(一般使用.基于注解.基于aop),使用filter可以对页面进行缓存 ...
- Micrometer 快速入门
Micrometer为最流行的监控系统提供了一个简单的仪表客户端外观,允许仪表化JVM应用,而无需关心是哪个供应商提供的指标.它的作用和SLF4J类似,只不过它关注的不是Logging(日志),而是a ...
- C++基础之string类
string也是属于顺序容器,但是string类很重要且经常使用,因此在这里单独记录. string的操作总结 string(const char *s,int n); //用c字符串s初始化,s应 ...
- 略学扩展Eculid算法
扩展 Euclid 算法 Euclid 算法 辗转相除法 计算两个数最大公因数 \(\text{gcd}(a,\,b) = \text{gcd}(b,\,a\%b)\) exEuclid 算法 裴蜀定 ...