问题描述
我阅读了Add and configure Swagger middleware部分,并感到困惑,似乎只注册了Swagger(不是Open API):
public void ConfigureServices(IServiceCollection services)
{
//...
// Register the Swagger services
services.AddSwaggerDocument();
}
但同时添加两个:
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();
// Register the Swagger generator and the Swagger UI middlewares
app.USEOpenApi();
app.UseSwaggerUi3();
app.UseMvc();
}
但是在https://github.com/RicoSuter/NSwag的另一个示例中,它同时添加了两个。
因此,在这个场景中,我还应该在services.AddOpenApiDocument()
块中添加ConfigureServices{}
方法吗?或者,如果我使用它呢?
解决方法
Swagger也称为OpenAPI规范,它解决了为Web API生成帮助文档的问题。 Swagger项目已捐赠给OpenAPI项目,现在称为Open API。 这两个名称可以互换使用,但首选OpenAPI。
您无法添加services.AddOpenApiDocument()
,这将导致重复。
除非要添加两个不同版本的文档,否则可以编写:
services.AddOpenApiDocument(document => document.DocumentName = "v1");
services.AddSwaggerDocument(document => document.DocumentName = "v2");
它们的效果是相同的。