1

我有一个包含大量服务的 Web API 项目。最初,我们使用 ASP.NET 开箱即用的标准 API 文档。

现在我想将我们的文档迁移到 Swagger。我使用Swashbuckle。我在文档中遇到了一些我不想描述的非常具体的问题。

话虽如此,也是因为我想保持我的 swagger 文档的清洁和高质量,我想找到一种方法来添加 API 以一个一个地招摇。

所以,主要问题是:我可以迁移到大摇大摆地逐步向文档中添加新的 API 并保持我的旧文档不变吗?

4

2 回答 2

0

您可以使用该[Obsolete()]属性对 Swashbuckle 隐藏方法。首先,您需要配置 Swashbuckle 以在构建 Swagger 文档时查找此属性:

config.EnableSwagger(
    routePrefix + "docs/{apiVersion}/swagger",
    c =>
    {
        // Set this flag to omit descriptions for any actions decorated with the Obsolete attribute
        c.IgnoreObsoleteActions();
        // Set this flag to omit schema property descriptions for any type properties decorated with the
        c.IgnoreObsoleteProperties();
    });

然后装饰你想要隐藏的动作:

[Obsolete("Hidden from Swashbuckle during renovations")]
[HttpGet]
Task<object> async WhyILostMyJob(string query)
{
     return await Database.SqlExecAsync(query, isAdmin: true);
}

请注意,这只隐藏了方法,它仍然是可调用的。如果你想把它带到下一步,你需要引入一个身份验证或授权过滤器。

于 2016-10-13T03:13:30.007 回答
0

您可以使用ApiExplorerSettingsAttribute不希望出现在 Swagger 文档中的 on 控制器和方法,如此处所述。我想开箱即用的文档可以用类似的方式控制(我在这方面没有任何经验)。结合这两个功能,您可以将文档逐渐移至 Swagger。

于 2016-03-16T19:58:09.140 回答