6.swagger完善:界面显示注释+多版本控制

这篇具有很好参考价值的文章主要介绍了6.swagger完善:界面显示注释+多版本控制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

周末,写点简单的水一下。

新版本的vs创建项目的时候可以选择自带一个swagger。然而这只是基本的swagger功能。

6.swagger完善:界面显示注释+多版本控制

 几个接口无所谓啦,随着接口越来越多,就这么丢给你,一时间也会懵逼,所以这篇文章要做的有两个功能。

  1. 给swagger文档添加注释
  2. 给swagger添加切换“版本”的功能(也可以理解为:让不同功能模块的接口显示在一个页面,不然几十上百的接口放一起找也不好找呀~)

右键项目>属性>生成>输出>XML文档文件路径,添加输出的路径,我一般会设置在程序集下的根路径,例如这样:

6.swagger完善:界面显示注释+多版本控制

文件命名什么的随意,一般跟项目有关例如:FastEasy.Readme.xml。

然后去swagger相关的Module模块中去添加一些配置。我这个文章相关的项目一开始的时候就将这些注入配置单独搞成独立的一个模块,所以你只是看到这个文章,那默认就在Programs里面找AddSwaggerGen就好。

        Services.AddSwaggerGen(s =>
        {
            //多版本
            typeof(SwaggerVersion).GetEnumNames().ToList().ForEach(v =>
            {
                s.SwaggerDoc(v, new Microsoft.OpenApi.Models.OpenApiInfo
                {
                    Version = v,
                    Description = $"{v} API",
                    Title = v,
                });
                //添加注释
                var basePath=AppDomain.CurrentDomain.BaseDirectory;
                var xmlPath = Path.Combine(basePath, "FastEasy.Readme.xml");
                s.IncludeXmlComments(xmlPath,true);
            });
        });

 文章来源地址https://www.toymoban.com/news/detail-712116.html

 

 如果不需要切换版本,那就关注添加注释下面三行代码就好,获取注释文档的路径,然后添加到swagger中。

接下来就是多版本切换,上面的代码已经是了,需要在意的地方是typeof里的SwaggerVersion。这是创建的一个枚举,然后在枚举中按需添加不同的版本切换,例如

        public enum SwaggerVersion
        {
            FastEasy = 1,
            OpenAPI = 2
        }

 

如果要使用多版本,中间件管道里也要改一下

        app.UseSwagger();
        app.UseSwaggerUI(s =>
        {
            typeof(SwaggerVersion).GetEnumNames().ToList().ForEach(v =>
            {
                s.SwaggerEndpoint($"swagger/{v}/swagger.json", $"{v}");
                s.RoutePrefix = string.Empty;
            });
        });

 

到这里就已经完成90%了。最后一步就是给不同的方法或者控制器添加[ApiExplorerSettings(GroupName = "OpenAPI")]

        [HttpGet("MUL")]
        [ApiExplorerSettings(GroupName = "OpenAPI")]
        public int MUL(int i, int j)
        {
            return test.MUL(i, j);
        }

 

原本是加减乘除4个接口,现在就是FastEasy下两个,OpenAPI下两个(只是测试,跟名称毫无关系)

6.swagger完善:界面显示注释+多版本控制

6.swagger完善:界面显示注释+多版本控制

 现在完成了99%了。如果像我这种小公司,没有版本的区别,无非就是为了看着方便,因为功能模块去区分开来。就像现在,查看文档的时候可以根据分类找到相对应的接口,不至于一眼乱糟糟的。

但是实际上并未完成版本控制,因为你会发现,他们的请求路径是差不多的。如果要完成真正的版本控制,有两种方法,第一种简单,路由上写死了:/v1/xxxx   /v2/xxxxx……

第二种就是自定义路由特性:添加一个特性配置的类:SwaagerRouteAttribute。我直接贴代码了,很简单的几行,代码的注释足以解释清楚了

    public class SwaagerRouteAttribute : RouteAttribute, IApiDescriptionGroupNameProvider
    {
        /// <summary>
        /// 默认的路由配置
        /// </summary>
        /// <param name="actionName"></param>
        public SwaagerRouteAttribute(string actionName) : base(actionName)
        {
        }

        /// <summary>
        /// 分组名称,控制不同版本:等同于配置ApiExplorerSettings(GroupName ="FastEasy")
        /// </summary>
        public string? GroupName { get; set; }

        /// <summary>
        /// 自定义的路由配置
        /// </summary>
        /// <param name="version"></param>
        /// <param name="actionName"></param>
        public SwaagerRouteAttribute(SwaggerVersion version, string actionName = "[action]") : base($"/{version.ToString()}/[controller]/{actionName}")
        {
            GroupName = version.ToString();
        }
    }

 

现在!用自己封装的路由属性添加到方法上面(截图看的全)

6.swagger完善:界面显示注释+多版本控制


 

此时才算完成真的版本控制效果:

6.swagger完善:界面显示注释+多版本控制

 啊掰掰~

 

到了这里,关于6.swagger完善:界面显示注释+多版本控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IDEA的版本控制Local Changes和settings按钮显示问题

    经常用idea的小伙伴应该对标题的这两个功能不陌生,特别是Local Changes 周日刚开工,我的idea就过期了,索性就下载了一个2023.3.3版本的,安装好打开一看,发现Local Changes 和 settings的按钮消失了,虽然说settings直接ctrl + alt + s可以按出来,但是我点按钮点习惯了,没有怪难受的

    2024年02月21日
    浏览(27)
  • NIVDIA控制面板与电脑“应用”CUDA、cmd下nvcc --version命令显示版本不同

            最初官方驱动 | NVIDIA安装CUDA11.6+cudnn8.3CUDA Deep Neural Network (cuDNN) | NVIDIA Developer,后显卡驱动自动更新,环境都可使用,但以后新装不知该以哪个为准。 目录 背景 一、查看CUDA版本信息: 1.1 cmd版本CUDA 11.6: ​​​​​​​ 1.2 电脑驱动显示12.3和11.6 1.2.1 NIVIDIA控制面板

    2024年04月16日
    浏览(26)
  • chrome 浏览器在 112 正式版本以及 114 canary 版本从 devtools 控制台复制文本不会复制高亮显示的文本?

    我的 chrome 浏览器版本如下: 版本 112.0.5615.138(正式版本) (64 位) 今天我在写代码的时候报错了,看了一下控制台浏览器,是某个属性没有定义,然后我双击这个属性名称 ctrl + c 复制,最后粘贴的时候发现 文本不正确 , 离了个大谱! 我特意找了一下这个 bug:https://bu

    2023年04月22日
    浏览(47)
  • 谷歌浏览器最新版本进行控制台调试js代码时候无法显示代码行数问题解决

    谷歌浏览器最新版本进行控制台调试js代码时候无法显示代码行数问题解决 最新版本谷歌浏览器进行了自动设置关闭那个功能,要自己去设置 解决方法 后面叉掉,重新进行js代码调试看看,如下: 代码行数出来,问题解决

    2024年02月12日
    浏览(52)
  • 取代 Postman + Swagger 这款神器功能更强大,界面更炫酷

    然后打开导入界面,选择Swagger-URL导入,输入Swagger的数据URL; 导入时将显示导入预览,显示要导入的接口和数据模型,Apifox将会把我们接口返回的实体类转换为数据模型,以便进行复用; 导入成功后界面效果如下,Apifox将查看文档和修改文档做了区分,方便我们管理接口文

    2024年04月26日
    浏览(27)
  • Swagger各版本访问地址

    Swagger各版本访问地址: 2.9.x 访问地址: http://ip:port/{context-path}/swagger-ui.html 3.0.x 访问地址: http://ip:port/{context-path}/swagger-ui/index.html 3.0集成knife4j 访问地址: http://ip:port/{context-path}/doc.html

    2023年04月09日
    浏览(24)
  • springboot2.7以上版本配置swagger3.0.0版本浏览器无法打开swagger-ui

    1.最实用解决方式:将pom里的swagger依赖降到2.9.0即可 过低无法启动项目 1.2 Springboot2.6以后将SpringMVC 默认路径匹配策略从AntPathMatcher 更改为PathPatternParser Springfox 使用的路径匹配是基于AntPathMatcher的,而Spring Boot 2.6.X使用的是PathPatternMatcher 2.3.0.0版本swagger2访问地址为:http://loca

    2024年02月11日
    浏览(22)
  • 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示R登录成功“,提供一个Ok按钮,用户点击OK后,关闭登录界面,跳转到其他界面,

    如果账号和密码不匹配,弹出错误对话框,给出信息\\\"账号和密码不匹配,是否重新登录\\\",并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面如果用户点击取消按钮,则弹出一个问题对话框,给出信息

    2024年04月10日
    浏览(42)
  • SpringBoot集成Swagger UI显示的接口可以显示Json格式的信息说明

           Swagger是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。        使用 Swagger 后可以直接通过代码生成文档,不再需要自己手动编写接口文档,对程序员来说非常方便,可以节约写文档的时间去学习新技术。        提供 Web 页面在

    2024年04月11日
    浏览(27)
  • FastAPI 自动文档Swagger UI 打不开。显示空白

    这两个文件红了。 1.下载文件 这两个文件的开源项目地址如下 https://github.com/swagger-api/swagger-ui https://github.com/Redocly/redoc 我们只需要提前自己需要的文件即可 这里已经从中抽取出来所需要的文件,需要的可以点击下方连接自行下载 静态文件直达 百度网盘链接: https://pan.baidu

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包