关于在 Swagger 文档中限制单个 API 的公开:
Swashbuckle 5.x:
Swashbuckle 5.x 有一个名为 IgnoreObsoleteActions 的配置选项(您需要设置它;默认情况下未启用),如果它们具有该[Obsolete]
属性,它将隐藏动作。
示例:配置
httpConfiguration
.EnableSwagger(c =>
{
c.IgnoreObsoleteActions();
});
文档中提供了更多信息。
Swashbuckle 4.1.x(或者如果您不想使用 obsolete 属性):
Swashbuckle 在IApiExplorer之上构建 swagger 文档。您应该能够添加一个属性 -- [ApiExplorerSettings(IgnoreApi = true)]
-- 来管理 ApiExplorerSettings 控制器类或单个控制器方法,以使资源管理器(以及随后的 Swashbuckle)在生成文档时忽略它们。
示例:单个操作
/// Ignore 'GetFoo' in documentation
public class FooBarController
{
[ApiExplorerSettings(IgnoreApi = true)]
public Bar GetFoo
{
...
}
public Bar GetBar
{
...
}
}
示例:控制器类
/// Ignore every controller method in FooBarController in documentation
[ApiExplorerSettings(IgnoreApi = true)]
public class FooBarController
{
public Bar GetFoo
{
...
}
public Bar GetBar
{
...
}
}
此GitHub 问题中的更多详细信息。我自己在 Swashbuckle 4.1.x 中使用过这个。