在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" })]
但是,这只列出了每个控制器两次,一次是在#34; Access Integration"再次在" Sync Users"。
下答案 0 :(得分:0)
就像@Helen在评论中指出的那样:
Swagger UI不支持嵌套组(标签)。如果需要,您需要修改源代码以实现自定义分组逻辑。
理论上,定制是可能的(Swagger UI是开源的),但是你将开始偏离主分支,还有与swashbuckle的集成。它会变得非常混乱!
但是,如果您升级到最新的用户界面(3.x),您将获得过滤器,以下是一些示例:
......还有更多隐藏的宝石可以帮助你:
https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/configuration.md#display