【问题标题】:Add a third layer to API documentation向 API 文档添加第三层
【发布时间】:2026-01-15 16:25:01
【问题描述】:

在 C# 中构建 API 层,并同时使用 Swagger 和 Swashbuckle 作为文档。到目前为止,我很喜欢它!只有一个问题。

默认情况下,API 的分层是两层。示例...这些是当前可用的 API,扩展了 Access Integration: Integration Settings

我想弄清楚的是如何拥有一个 Access Integration 分组,当点击它时,会显示这些控制器:

  • 集成
  • 同步用户
  • 同步门
  • 访问事件

然后您可以深入了解任何一个控制器以查看其中的方法。所以,基本上,三层而不是两层。

这可能吗?我一直在看这个问题:Grouping of API methods in documentation - is there some custom attribute,但这并没有让我到达那里。我一直在试图弄清楚如何使用它:

c.GroupActionsBy(apiDesc => apiDesc.HttpMethod.ToString());

但我没有找到任何如何使用它的示例。

我试过了:

[SwaggerOperation(Tags = new[] { "Access Integration", "Sync Doors" })]

[SwaggerOperation(Tags = new[] { "Access Integration", "Sync Users" })]

但这只是列出了每个控制器两次,一次在“访问集成”下,一次在“同步用户”下。

【问题讨论】:

标签: c# .net swagger swashbuckle


【解决方案1】:

就像@Helen 在 cmets 中指出的那样:

Swagger UI 不支持嵌套组(标签)。如果你需要这个,你需要修改源代码来实现你的自定义分组逻辑。

理论上自定义是可能的(Swagger UI 是开源的),但你会开始偏离主分支,还有与 swashbuckle 的集成。它会变得非常混乱!



但是,如果您升级到最新的 UI (3.x),您将获得过滤器,以下是一些示例:

...还有更多隐藏的宝石可以帮助您:
https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/configuration.md#display

【讨论】: