向API文档

时间:2018-03-06 17:13:39

标签: c# .net swagger swashbuckle

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

默认情况下,API的分层是两个深层。示例...这些是当前可用的API,其中Access Integration: Integration Settings已展开:

enter image description here

我想弄清楚的是如何对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"。

1 个答案:

答案 0 :(得分:0)

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

  

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

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



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

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