使用Asp.net和Swagger来仅显示特定的端点。
问题:如何使用Asp.net和Swagger只显示特定的端点?
原因:在使用Asp.net和Swagger构建API文档时,有时希望只显示特定的端点而不是全部端点。这可能是因为某些端点是测试用的,或者因为有一些敏感的端点不希望被公开。
解决方法:通过在控制器上添加特定的属性来解决这个问题。可以使用[ApiExplorerSettings(IgnoreApi = true)]
属性来忽略所有端点,然后通过将IgnoreApi = false
属性设置为希望显示的端点来取消忽略。
另外,如果将IgnoreApi = false
属性应用于特定的方法,那么只有该方法将被忽略。
通过这种方式,可以方便地控制Swagger文档中显示的端点,使其更加清晰和易于使用。
ASP.NET和Swagger用于只显示特定的端点
在ASP.NET中,我们可以使用[ApiExplorerSettings(IgnoreApi = true)]
属性来隐藏特定的控制器或操作。如果我们从ApiController继承,我们可以创建自己的基础控制器,然后在其中标记需要隐藏的控制器或操作。如果我们标记了基础控制器,那么我们需要手动标记操作或控制器:
[ApiExplorerSettings(IgnoreApi = false)]
如果我们想隐藏某些不再使用的端点,但仍然保留代码,我们可以采取两种方法:
1. 将这些方法的访问修饰符更改为private
2. 使用[Obsolete]
属性标记要隐藏的所有项,并在启动时更改Swagger配置:
httpConfiguration.EnableSwagger(c => { c.IgnoreObsoleteActions(); });
如果我们想要反转这个逻辑而不用标记所有的操作和控制器,有办法吗?
如果我们从自己的基础控制器继承,那么我们只需要标记单个控制器,然后其他所有内容都将被隐藏。如果我们从ApiController继承,我们可以创建自己的基础控制器,然后在其中标记需要隐藏的控制器或操作。不需要对单个操作进行标记,因为它将遵循控制器的属性。