当前位置: 首页 > news >正文

.NET 中使用Swagger 实现 API 分组管理

最终效果图

在这里插入图片描述

一.Swagger Api分组实现步骤:
  1. 在Program.cs 中配置 Swagger,并为每个分组设置对应的文档标题和版本号以及描述
builder.Services.AddSwaggerGen(options =>
{options.SwaggerDoc("v2", new OpenApiInfo{Version = "v2",Title = " WebApi",Description = "Api Services"});options.SwaggerDoc("v3", new OpenApiInfo{Version = "v3",Title = "WebApi",Description = "Api Services"});// 根据 GroupName 匹配文档版本options.DocInclusionPredicate((docName, apiDesc) =>{return apiDesc.GroupName == docName;});
});
  1. 启用 Swagger UI,并为每个版本指定一个文档端点
app.UseSwagger();
app.UseSwaggerUI(s =>
{s.SwaggerEndpoint("/swagger/v2/swagger.json", "WebApi v2");s.SwaggerEndpoint("/swagger/v3/swagger.json", "WebApi v3");
}
  1. 以上配置完成后,在控制器(Controller)上方添加 [ApiExplorerSettings] 特性或者添加在操作方法上方,并指定 GroupName即分组名称。例如,添加在控制器上:

在这里插入图片描述

  1. 最后访问 Swagger UI,你会看到两个文档选项:“WebApi v2” 和 “WebApi v3”。心腹每个分组文档中包含对应的 API
    (以上使用.net 8配置)
二.API 文档中功能分组

使用 [Tags] 特性,可以实现将各个不同模块控制器的所有方法集中展示在Tage 指定的分组名称中

例如:没有使用Tage 特性前,这是2个不同控制器的方法
在这里插入图片描述

使用Tage 特性后,不同控制器的方法集中展示在Tage 指定的分组名称中。(注:2个控制器都需要同时配置Tags(“测试合并”))

在这里插入图片描述

Tage 特性在控制器配置显示如下:

在这里插入图片描述

说明: 只需要在 Program.cs 中正常配置 Swagger, [Tags] 特性无需额外配置,因为 [Tags] 特性会自动被 Swagger 识别的;

方法名后边显示的中文名称注释配置:

  1. 在控制器中的方法名上方添该特性 EndpointSummary(“测试”)
  2. 需要引入 Microsoft.AspNetCore.Http 包
http://www.dtcms.com/a/389915.html

相关文章:

  • C++面试突击(2)
  • 2025年生物信息学与大数据国际会议(ICBBD 2025)
  • R 语言入门实战|第八章 S3 系统:用面向对象思维美化“老虎机”输出
  • SpringBoot自定义配置实战原理深层解析
  • cef:浏览器和渲染
  • EasyClick JavaScript 函数
  • Qt QSplineSeries详解
  • 扩散模型简介
  • [答疑]SysML模型的BDD中加了新的端口,怎样同步到IBD
  • MySQL 专题(二):索引原理与优化
  • 【脑电分析系列】第17篇:EEG特征提取与降维进阶 — 主成分分析、判别分析与黎曼几何
  • NVIDIA DOCA 环境产品使用与体验报告
  • C# Windows Service 中添加 log4net 的详细教程
  • 用 pymupdf4llm 打造 PDF → Markdown 的高效 LLM 数据管道(附实战对比)
  • 机械设备钢材建材网站 网站模版
  • Mysql8 SQLSTATE[42000] sql_mode=only_full_group_by错误解决办法
  • 【第五章:计算机视觉-项目实战之图像分类实战】2.图像分类实战-(3)批量归一化(Batch Normalization)和权重初始化的重要性
  • SQL Server 多用户读写随机超时?从问题分析到根治方案
  • 2.css的继承性,层叠性,优先级
  • OpenStack 学习笔记(四):编排管理与存储管理实践(上)
  • list_for_each_entry 详解
  • Perplexity AI Agent原生浏览器Comet
  • 颈椎按摩器方案开发,智能按摩仪方案设计
  • Sui 学习日志 1
  • 六、Java—IO流
  • 数据库 事务隔离级别 深入理解数据库事务隔离级别:脏读、不可重复读、幻读与串行化
  • 从“纸面”到“人本”:劳务合同管理的数字化蜕变
  • ARM架构——学习时钟7.2
  • VS Code 调试配置详解:占位符与语言差异
  • 锁 相关知识总结