.NetCore WebApi —— Swagger版本控制

上接:.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 = "[email protected]",
                            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

原文地址:https://www.cnblogs.com/jixiaosa/p/10817143.html

时间: 2024-10-11 20:52:33

.NetCore WebApi —— Swagger版本控制的相关文章

.NetCore WebApi——Swagger简单配置

在前后端分离的大环境下,API接口文档成为了前后端交流的一个重点.Swagger让开发人员摆脱了写接口文档的痛苦. 官方网址:https://swagger.io/ 在.Net Core WebApi中通过简单配置即可使用这一强大的功能. 1.新建一个API的项目 选择 API 项目 2.引入Swagger包..Net Core 中支持两个分别为Swashbuckle和NSwag.两者的配置大同小异.这里以Swashbuckle为例. 方式1:选择工具——Nuget包管理——管理解决方案的Nug

使用Swashbuckle.AspNetCore生成.NetCore WEBAPI的接口文档

一.问题 使用Swashbuckle.AspNetCore生成.NetCore WEBAPI的接口文档的方法 二.解决方案 参考文章:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/web-api-help-pages-using-swagger?tabs=visual-studio 1.Install-Package Swashbuckle.AspNetCore 2.在ConfigureServices中添加AddSwaggerGe

.Net Webapi Swagger增加登录功能

.mytitle { background: #2B6695; color: white; font-family: "微软雅黑", "宋体", "黑体", Arial; font-size: 18px; font-weight: bold; height: 25px; line-height: 25px; margin: 15px 0 !important; padding: 5px 0 5px 20px; width: 97% } .arti

Asp.Net WebApi Swagger终极搭建

关于为什么用Swagger 目前稍微有点规模的公司,已经从原先的瀑布流开发到了敏捷开发,实现前后端分离,为此后端工程师只关注写好Api即可,那程序员最讨厌的就是写Api文档了,故而产生了Swagger. Swagger原理 Swagger就是利用反射技术遍历所有Api接口,并且从xml文件中读取注释,在利用Swagger内置的模板组合html显示至客户端实现接口可视化,并且可调用. Asp.net WebApi Swagger集成 1:vs2017,新建web项目,选择WebApi 2:删除Vi

asp.net webapi+swagger+OAuth2.0

文档继续完善整理中...... c.DocumentFilter<SwaggerDocTag>(); /// <summary> /// Swagger注释帮助类 /// </summary> public class SwaggerDocTag : IDocumentFilter { /// <summary> /// 添加附加注释 /// </summary> public void Apply(SwaggerDocument swagger

.netCore WebApi传输参变化

.netCore 的 WebApi,一般以前的mvc5,继承自 ApiController ,则是WebApi,采用独有的管道处理模型,再Core中,一般是 继承自 ControllerBase,控制器类上标注 [ApiController] 1.前端代码 1 //NetCoreWebApi中,传输 application/json; 格式的,后端无需加[FormBody]也能拿到值 2 $.ajax({ 3 type: "post", 4 url: "/api/WebApi

.NetCore WebApi + Vue +MySql搭建博客

因为我是一直写C#的,所以最近闲暇时间一直在学习.NET Core,该博客的后端使用的就是.NET Core WebApi然后加前端Vue. 首先后端.NET Core搭的框架是一个仓储层+服务层+API,然后数据库访问是EF Core+Mysql数据库.具体接口都使用的异步,使用第三方IOC容器解耦. 然后前端页面是网上找的模板https://www.yangqq.com/link.html,博主有各种风格的博客,可以去看下.然后接口请求是axios,vue用来处理数据. 开发环境:vs201

.NetCore WebApi 添加 Log4Net

一 .配置 1.vs2019 创建一个.net core web程序,选择webapi 2.项目中添加一个配置文件:添加--新建项--XML文件,命名为log4net.config 我使用的是log4net的RollingLogFileAppender,他的好处是按天记录日志,一般日志记录会选择30天 <configuration> <!-- This section contains the log4net configuration settings --> <log4n

MVC WebApi Swagger帮助文档 接口用法

1.WebApi在解决方案Apps.WebApi中 2.将Apps.WebApi设置为启动项目之后,可以直接浏览到Api的帮助文档,并直接进行调试 3.登录接口 4.登录获取的token来访问其他接口 关于token过期以及验证规则,详见代码内部 原文地址:https://www.cnblogs.com/ymnets/p/10922873.html