Asp.net WebApi Swagger Tag 标记分组归纳显示Api接口路由
官方文档说明地址 https://swagger.io/docs/specification/2-0/grouping-operations-with-tags/
创建一个自定义的特性类 public class ControllerGroupAttribute : Attribute { public ControllerGroupAttribute(string groupName) { if (string.IsNullOrWhiteSpace(groupName)) { throw new ArgumentNullException("分组信息不能为空"); } GroupName = groupName; } /// <summary> /// /// </summary> public string GroupName { get; set; } }
配置Swagger的分组规则 GlobalConfiguration.Configuration .EnableSwagger(c => { c.SingleApiVersion("v1", "SwaggerGroupTest"); c.IncludeXmlComments(GetXmlCommentsPath()); c.GroupActionsBy(apiDesc => apiDesc.GetControllerAndActionAttributes<ControllerGroupAttribute>().Any() ? apiDesc.GetControllerAndActionAttributes<ControllerGroupAttribute>().First().GroupName : apiDesc.ActionDescriptor.ControllerDescriptor.ControllerName ); }) .EnableSwaggerUi(c => { });
下图为Swagger.Config的代码图
接下来就是使用特性 标注在Controller 上或者Action上 去进行分组 [ControllerGroupAttribute("jazgh")]
namespace SwaggerGroupTest.Controllers { /// <summary> /// /// </summary> [Route("api/User/{action}")] public class UserController : ApiController { [ControllerGroup("nczgk")] /// <summary> /// 用户列表 /// </summary> /// <returns></returns> [HttpGet] public IHttpActionResult PeopleList() { return Ok(new string[] { "张三", "李四", "王五" }); } /// <summary> /// 打招呼 /// </summary> /// <returns></returns> [HttpGet] public IHttpActionResult SayHello() { return Ok("Hello"); } } }
效果图如下
标注在Action上的会归类到单独的tag 标记中 没有就按照原有的Controller 名称分类
实际得到的json 描述如上图所示 和官网文档说的使用tag标记符合 官网文档地址在文章最开头
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!