Swagger的API默认排序往往达不到效果,甚至设置了Action排序也没有作用。这里直接给出代码,关键在于 IDocumentFilter 实现。

注意 DocumentFilter 注册要放在尾部,否则获取不到分组Tag信息

services.AddSwaggerGen();
services.AddOptions<SwaggerGenOptions>().Configure<IOptions<ProjectOptions>>((c, pOptions) =>
{
c.SwaggerDoc("v1", new OpenApiInfo
{
Title = $"{proj.Code} ({proj.Profile})",
Version = proj.Version,
Description = proj.Title
}); var basePath = AppContext.BaseDirectory;
var xmlPath = Path.Combine(basePath, $"{proj.NsPrefix}.Model.xml");
if (File.Exists(xmlPath))
{
c.IncludeXmlComments(xmlPath);
}
xmlPath = Path.Combine(basePath, $"{proj.NsPrefix}.WebApi.xml");
if (File.Exists(xmlPath))
{
c.IncludeXmlComments(xmlPath, true);
}// 设置分组排序
c.DocumentFilter<OrderTagsDocumentFilter>();
// 设置API排序
c.OrderActionsBy(desc => desc.RelativePath);
});
/// <summary>
/// 文档按控制器分组
/// </summary>
public class OrderTagsDocumentFilter : IDocumentFilter
{
/// <summary>
/// 设置
/// </summary>
/// <param name="swaggerDoc"></param>
/// <param name="context"></param>
public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context)
{
swaggerDoc.Tags = swaggerDoc.Tags.OrderBy(x => x.Name).ToList();
}
}

.NET 中的 Swagger 文档排序设置的更多相关文章

  1. 如何Spring Cloud Zuul作为网关的分布式系统中整合Swagger文档在同一个页面上

    本文不涉及技术,只是单纯的一个小技巧. 阅读本文前,你需要对spring-cloud-zuul.spring-cloud-eureka.以及swagger的配置和使用有所了解. 如果你的系统也是用zu ...

  2. Spring 5 中函数式web开发中的swagger文档

    Spring 5 中一个非常重要的更新就是增加了响应式web开发WebFlux,并且推荐使用函数式风格(RouterFunction和 HandlerFunction)来开发WebFlux.对于之前主 ...

  3. dotnet webapi 中添加Swagger文档

    首先添加"SwaggerGenerator": "1.1.0","SwaggerUi": "1.1.0" 需要注意的是这 ...

  4. springboot成神之——swagger文档自动生成工具

    本文讲解如何在spring-boot中使用swagger文档自动生成工具 目录结构 说明 依赖 SwaggerConfig 开启api界面 JSR 303注释信息 Swagger核心注释 User T ...

  5. Spring+Swagger文档无法排序问题解决

    项目中用到swagger用于自动生成文档,遇到了好多结合后的问题.而对于这个排序问题,在查看了后端Swagger原代码之后,发现视乎当前使用的swagger(不是springfox,应该不是官方的,网 ...

  6. revel + swagger 文档也能互动啦

    beego 从 1.3 后开始支持自动化API文档,不过,目测比较复杂,一直期望 revel 能有官方支持. revel 确实已经有了官方支持的计划,有可能将在 0.14 版本支持,现在才 0.11. ...

  7. 使用 Swagger 文档化和定义 RESTful API

    大部分 Web 应用程序都支持 RESTful API,但不同于 SOAP API——REST API 依赖于 HTTP 方法,缺少与 Web 服务描述语言(Web Services Descript ...

  8. asp.net core 2.1 生成swagger文档

    新建asp.netcore2.1 api项目 “WebApplication1” 在nuget管理器中添加对Swashbuckle.AspNetCore 3.0.0.Microsoft.AspNetC ...

  9. Core + Vue 后台管理基础框架8——Swagger文档

    1.前言 作为前后端分离的项目,或者说但凡涉及到对外服务的后端,一个自描述,跟代码实时同步的文档是极其重要的.说到这儿,想起了几年前在XX速运,每天写完代码,还要给APP团队更新文档的惨痛经历.给人家 ...

  10. SpringBoot系列:六、集成Swagger文档

    本篇开始介绍Api文档Swagger的集成 一.引入maven依赖 <dependency> <groupId>io.springfox</groupId> < ...

随机推荐

  1. MySql 建表出现的问题 : [ERR] 1064 - You have an error in your SQL syntax; check the manual.......

    使用 MySql 建表出现的问题 在使用 Navicat Premium 运行 sql 语句进行建表时,MySQL 报错如下: 1064 - You have an error in your SQL ...

  2. 总是被低估,从未被超越,揭秘QQ极致丝滑背后的硬核IM技术优化

    本文由腾讯云开发者张曌.毕磊分享,原题"QQ 9"傻快傻快"的?!带你看看背后的技术秘密",本文进行了排版和内容优化等. 1.引言 最新发布的 QQ 9 自上线 ...

  3. Verilog4_时序逻辑电路

    时序逻辑电路概述 时序逻辑电路分类: 按照触发器的动作特点: 同步时序逻辑电路: 所有触发器的状态变化都是在同一个时钟信号作用下同时发生的 异步时序逻辑电路: 没有统一的时钟脉冲信号,各触发器状态的变 ...

  4. 搭建gitlab私有仓库

    1.下载gitlab 首先在 /etc/yum.repos.d/目录下配置gitlab下载镜像源. # 进入目录 /etc/yum.repos.d/ cd /etc/yum.repos.d/ # 创建 ...

  5. Java工具类HttpClientUtil

    1. 依赖包 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId> ...

  6. [转载]「服务」WCF中NetNamedPipeBinding的应用实例

    「服务」WCF中NetNamedPipeBinding的应用实例 WCF中有很多种绑定,根据官方的说法,NetNamedPipeBinding是适用于同一台主机中不同进程之间的通信的. 今天终于实现了 ...

  7. 图解ArrayList源码

    初始化数组长度为空时, 懒加载 add方法 初始无参构造器 第一次添加 public boolean add(E e) {    // 确定容量 动态扩容 size 初始 0    ensureCap ...

  8. 干掉visio,这个画图神器真的绝了!!!

    前言 看过我以往文章的小伙伴可能会发现,我的大部分文章都有很多配图.我的文章风格是图文相结合,更便于大家理解. 最近有很多小伙伴发私信问我:文章中的图是用什么工具画的.他们觉得我画的图风格挺小清新的, ...

  9. DAB实现中用到的主要设计模式

    DAB C++ 版本设计模式应用实践 1. 命令模式 (Command Pattern) 设计目标 模块解耦:实现各模块独立编译.测试.运行,消除模块间直接依赖 扩展准备:为桥接模式实现奠定基础 依赖 ...

  10. JMeter组件的执行顺序和作用域

    组件介绍 测试计划:jmeter的起点和容器 线程组:代表一定的虚拟用户 取样器:发送请求的最小单元 逻辑控制器:控制组件的执行顺序 前置处理器:在请求之前的操作 后置处理器:在请求之后的操作 断言: ...