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. vivo手机上的系统级消息推送平台的架构设计实践

    本文由vivo互联网服务器团队李青鑫分享,有较多修订和改动. 1.引言 本文内容来自vivo互联网服务器团队李青鑫在"2021 vivo开发者大会"现场的演讲内容整理而成(现场演讲 ...

  2. MCU命令

    三D打印常用MCU命令 allocate_oids count=42 分配 42 个 OIDs,后续用于标识和管理不同的设备或组件 config_spi oid=0 pin=PD7 cs_active ...

  3. 函数 | Go语言

    函数 不支持命名参数与默认值 可变参数 求多个int的和 func IntSum(x ...int) { sum := 0 for _, v := range x { sum += v } retur ...

  4. Solution -「JZOJ #5457」项链

    \(\mathscr{Description}\)   Private link.   给定一条有 \(n\) 个点的圆环和 \(m\) 中颜色, 求在位置旋转, 位置翻转, 颜色旋转等价的意义下, ...

  5. 项目PMP之六项目进度管理

    项目PMP之六--项目进度管理   一.定义:用于沟通和管理相关方期望的工具,可作为报告绩效的基础,说明项目的交付时间和方式 迭代型进度计划(敏捷模式):接受存在未完成项,滚动式规划管理 按需进度计划 ...

  6. Java01-基础入门(准备工作)

    从零开始开发Java的第一个程序: [ 任务列表 ] 最新的程序开发手段 Java是什么 Java开发工具 JDK的卸载,下载及安装 JDK配置环境变量 命令行运行第一个Java程序 Java开发工具 ...

  7. 从整理扑克牌到字母异位词分组:一道巧妙的排序应用题 |LeetCode 49 字母异位词分组

    LeetCode 49 字母异位词分组 点此看全部题解 LeetCode必刷100题:一份来自面试官的算法地图(题解持续更新中) 生活中的算法 你有没有玩过扑克牌?打完一局之后,我们通常会把散落的牌收 ...

  8. 玩转云端|天翼云边缘安全加速平台AccessOne实用窍门之保障热门产品发售服务安全稳定

    本文分享自天翼云开发者社区<玩转云端|天翼云边缘安全加速平台AccessOne实用窍门之保障热门产品发售服务安全稳定>,作者:天翼云社区官方账号 随着社会经济的发展和人民生活水平的提高,越 ...

  9. Kali 切换中文模式

    Kali 切换中文模式 在桌面打开终端,输入sudo dpkg-reconfigure locales命令,然后输入kali的密码 在选择栏目找到 zh_CN.UTF-8 UTF-8 找到之后按 空格 ...

  10. RocketMQ实战—8.营销系统业务和方案介绍

    大纲 1.电商核心交易场景的业务流程 2.电商支付后履约场景的业务流程 3.电商营销场景的业务说明 4.电商促销活动的Push推送 5.会员与推送的数据库表结构 6.营销系统的数据库表结构 7.营销系 ...