在 API 文档中添加第三层

Add a third layer to API documentation

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

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

我想弄清楚的是如何对 Access Integration 进行单个分组,单击该分组时会显示这些控制器:

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

这可能吗?我一直在看这个问题:,但它并没有让我到达那里。我一直在努力弄清楚如何使用它:

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

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

我试过这个:

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

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

但这只是列出了每个控制器两次,一次在 "Access Integration" 下,另一次在 "Sync Users" 下。

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

Swagger UI does not support nested groups (tags). If you need this, you'll need to modify the source code to implement your custom grouping logic.

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



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

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