【问题标题】:Is it possible to have NSwag ignore a controller?是否可以让 NSwag 忽略控制器?
【发布时间】:2017-09-14 19:21:10
【问题描述】:

我使用 NSwag 为单个控制器生成客户端;我需要它作为自己独立的客户。我希望在将来生成 Swagger 规范时忽略它。

我尝试在控制器顶部添加此属性,但在规范中仍然注明: [ApiExplorerSettings(IgnoreApi = true)]

我的控制器正在实现标准的Microsoft.AspNetCore.Mvc.Controller 类。

【问题讨论】:

    标签: c# swagger nswag


    【解决方案1】:

    我认为在最新版本中,

    [ApiExplorerSettings(IgnoreApi = true)]
    

    支持。

    否则,您可以添加 SwaggerIgnoreAttribute 或 OpenApiIgnoreAttribute 属性

    [SwaggerIgnore]
    [OpenApiIgnore]
    

    或者在 NSwagStudio 或者中间件中手动选择控制器...

    【讨论】:

    • 我有最新版本,但该注释仍然不适合我。使用[NSwag.Annotations.SwaggerIgnore] 最终成为最佳解决方案。
    • 该测试仅表明该属性在放置在方法上时有效。我有兴趣用一个属性淘汰整个控制器。 [SwaggerIgnore] 就是这样做的,谢天谢地。
    • 我明白了,下个版本也会支持这个场景:github.com/NSwag/NSwag/commit/…
    • [Microsoft.AspNetCore.Mvc.ApiExplorerSettings(IgnoreApi = true)] 如果您的控制器中还有using System.Web.Http.Description;,则需要
    【解决方案2】:

    使用 [OpenApiIgnore]

    (因为 [SwaggerIgnore] 已被弃用)

    【讨论】:

      【解决方案3】:

      @Arieh 的回答对我有用。 我想分享更多。

      1. 为DTO类安装包NSwag.Annotations,对于我的情况是在单独的项目中,然后使用[OpenApiIgnore]装饰应该忽略的属性。
      2. 为 web 项目安装包 NSwag.AspNetCore。

      【讨论】:

      • 这个作品适合任何人吗?
      猜你喜欢
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      • 2023-01-30
      • 1970-01-01
      • 2013-11-18
      • 2018-02-06
      相关资源
      最近更新 更多