我有一个C#ASP.NET WebAPI应用程序,其API文档是使用Swashbuckle自动生成的 . 我希望能够从文档中得到 omit certain methods 但我似乎无法弄清楚如何告诉Swagger不要将它们包含在Swagger UI输出中 .
我觉得它与 adding a model or schema filter 有关,但它并不明显该做什么,文档似乎只提供了如何修改方法输出的示例,而不是从输出中完全删除它 .
提前致谢 .
我有一个C#ASP.NET WebAPI应用程序,其API文档是使用Swashbuckle自动生成的 . 我希望能够从文档中得到 omit certain methods 但我似乎无法弄清楚如何告诉Swagger不要将它们包含在Swagger UI输出中 .
我觉得它与 adding a model or schema filter 有关,但它并不明显该做什么,文档似乎只提供了如何修改方法输出的示例,而不是从输出中完全删除它 .
提前致谢 .
5 回答
您可以将以下属性添加到控制器和操作,以从生成的文档中排除它们:
[ApiExplorerSettings(IgnoreApi = true)]
在使用文档过滤器生成后,您可以从swagger文档中删除"operations" - 只需将动词设置为
null
(但是,可能还有其他方法可以执行此操作)以下示例仅允许
GET
动词 - 取自this issue .并在你的招摇配置:
有人在github上发布了解决方案,所以我要把它粘贴到这里 . 所有学分归他所有 . https://github.com/domaindrivendev/Swashbuckle/issues/153#issuecomment-213342771
首先创建一个Attribute类
然后创建一个文档过滤器类
然后在Swagger Config类中添加该文档过滤器
最后一步是在Controller或Method上添加[HideInDocsAttribute]属性,不要让Swashbuckle生成文档 .
我更希望完全删除路径项的字典:
使用这种方法,您不会在生成的swagger.json定义中获得“空”项 .
基于@spottedmahns answer . 我的任务反之亦然 . 仅显示允许的内容 .
框架:.NetCore 2.1; Swagger:3.0.0
添加了属性
并实现自定义 IDocumentFilter
ConfigureServices 代码: