Asp.net和Swagger仅显示特定端点

时间:2019-08-08 12:31:48

标签: c# asp.net swagger swashbuckle

默认情况下是否可以全部隐藏所有端点,并且仅显示我用某种属性标记的端点?

2 个答案:

答案 0 :(得分:1)

您可以使用属性:

[ApiExplorerSettings(IgnoreApi = true)]

在自定义基本控制器上,或者仅在要隐藏的控制器上。如果要从ApiController继承,则可以创建自己的基本控制器,也可以不幸地用它标记每个控制器。无需执行单独的操作,因为这将监听控制器的属性。如果您标记基本控制器,则需要使用以下标记手动标记操作或控制器:

[ApiExplorerSettings(IgnoreApi = false)]

如果由于不再使用端点而要隐藏端点,但仍希望代码在那里,那么您可以做两件事。

  1. 将这些方法的访问修饰符更改为私有
  2. 使用[Obselete]属性标记要隐藏的所有项目,并在启动时像这样更改swagger配置:

    httpConfiguration.EnableSwagger(c =>
    {
        c.IgnoreObsoleteActions();
    });
    

答案 1 :(得分:0)

您可以向控制器添加以下属性,以忽略所有端点。

 [ApiExplorerSettings(IgnoreApi = true)]

您可以为要显示的那些端点设置 IgnoreApi = false

另一方面,如果将 IgnoreApi = false 应用于特定方法,则只会忽略该方法。