【发布时间】:2017-09-14 19:21:10
【问题描述】:
我使用 NSwag 为单个控制器生成客户端;我需要它作为自己独立的客户。我希望在将来生成 Swagger 规范时忽略它。
我尝试在控制器顶部添加此属性,但在规范中仍然注明:
[ApiExplorerSettings(IgnoreApi = true)]
我的控制器正在实现标准的Microsoft.AspNetCore.Mvc.Controller 类。
【问题讨论】:
我使用 NSwag 为单个控制器生成客户端;我需要它作为自己独立的客户。我希望在将来生成 Swagger 规范时忽略它。
我尝试在控制器顶部添加此属性,但在规范中仍然注明:
[ApiExplorerSettings(IgnoreApi = true)]
我的控制器正在实现标准的Microsoft.AspNetCore.Mvc.Controller 类。
【问题讨论】:
我认为在最新版本中,
[ApiExplorerSettings(IgnoreApi = true)]
支持。
否则,您可以添加 SwaggerIgnoreAttribute 或 OpenApiIgnoreAttribute 属性
[SwaggerIgnore]
[OpenApiIgnore]
或者在 NSwagStudio 或者中间件中手动选择控制器...
【讨论】:
[NSwag.Annotations.SwaggerIgnore] 最终成为最佳解决方案。
[SwaggerIgnore] 就是这样做的,谢天谢地。
[Microsoft.AspNetCore.Mvc.ApiExplorerSettings(IgnoreApi = true)] 如果您的控制器中还有using System.Web.Http.Description;,则需要
使用
[OpenApiIgnore]
(因为 [SwaggerIgnore] 已被弃用)
【讨论】:
@Arieh 的回答对我有用。 我想分享更多。
NSwag.Annotations,对于我的情况是在单独的项目中,然后使用[OpenApiIgnore]装饰应该忽略的属性。NSwag.AspNetCore。【讨论】: