属性“[ApiExplorerSettings(IgnoreApi = true)]”有什么作用?

Sup*_*Bob 8 c# asp.net swagger

编辑:我知道一般属性有什么作用,问题仅针对这个特定属性。对困惑感到抱歉!

我已经阅读了以下问题以及这个问题,其中指出了如何使用该属性来忽略为特定方法或整个控制器生成的 swagger/swashbuckle 文档。(文档是我相信列出了所有 api 的 swagger 页面?)

但是除了 swagger/swashbuckle(这是一个 NuGet 包),这个属性在 ASP.NET 中还有什么其他功能?

Pet*_*all 16

当应用于控制器上的公共方法时,它会阻止该方法出现在 swagger ui 中。


Pac*_*ac0 8

首先需要澄清的是,C# 中的属性本身不会触发任何内容。外部代码搜索标有特定属性的类、方法或属性,并采取相应的操作。

当然,ASP.NET MVC 中有很多构建块,有时可能会令人困惑。

Swagger 使用此属性来隐藏端点。

也可以通过IApiDescriptionProvider和其他相关接口的给定实现使用(至少在 .NET core 中),但只有在实际使用它们时才有效(通过在 Startup.cs 中配置它们)

(有关更多详细信息和示例,请参阅https://andrewlock.net/introduction-to-the-apiexplorer-in-asp-net-core/