Swashbuckle版本控制选择默认的API版本以显示在Swagger中

问题描述 投票:1回答:1

我正在对API进行版本控制,我希望在Swagger中显示最新的API版本作为默认版本。例如,我的API有2个版本,当有人选择显示Swagger时,首先出现的版本是V1.0。用户必须手动选择要显示的最新版本。

在下图中,我们可以看到在应用程序启动时显示给用户的默认版本是V1.0。

API Versioning Swagger

我想知道默认情况下是否可以向用户显示最新的API版本。

谢谢!

swagger swashbuckle swashbuckle.aspnetcore
1个回答
0
投票

首先,我在Startup.cs的Configure类中添加了IApiVersionDescriptionProvider,如下所示:

Configure Method in Startup.cs

[之后,我必须反向列出包含app.UseSwaggerUI()中api可用版本的列表。

[在Startup.cs Configure方法中配置Swagger UI的顺序确定了下拉列表的顺序。

        app.UseSwaggerUI(c =>
        {
            foreach (var description in apiVersionDescriptionProvider.ApiVersionDescriptions.Reverse())
            {
                // Create the Swagger endpoints for each version
                c.SwaggerEndpoint($"/swagger/" +
                    $"LibraryOpenAPISpecification{description.GroupName}/swagger.json",
                    description.GroupName.ToUpperInvariant());
            }
            c.RoutePrefix = ""; // swagger UI at the root index.html
        });

@ Bob Ash的以下回答非常有帮助-How can i specify the default opening version of swagger?

通过这样做,我现在成功地将V2.0显示为api的默认版本:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.