【问题标题】:Change Default Version Swagger Location更改默认版本 Swagger 位置
【发布时间】:2017-02-13 01:08:28
【问题描述】:

将 Swashbuckle 与 c.MultipleApiVersions((apiDesc, version) =>... 结合使用,结果是我们的 swagger 文件位于例如:https://host/api/swagger/docs/{version}。我实际上想在https://host/api/{version}/swagger 上拥有 swagger 文件。我可以在我的 SwaggerConfig .EnableSwagger() 中进行设置吗?

这将允许以下网址:

http://host/api/v1/swagger/

http://host/api/v2/swagger/

感谢您的帮助。

【问题讨论】:

    标签: swagger swagger-ui swashbuckle


    【解决方案1】:

    为此,您可以更新 swaggerconfig 文件,如下所示:

    .EnableSwagger("{apiVersion}/swagger", c =>
            {
                c.MultipleApiVersions(
                    (vc) =>
                    {
                        vc.Version("v2", "Swashbuckle Dummy API V2");
                        vc.Version("v1", "Swashbuckle Dummy API V1");
                    });
            });
    

    【讨论】:

    【解决方案2】:

    只是为了在 asp.net core 2.2 中进一步参考,它会像这样

    app.UseSwagger(options =>
            {
                options.RouteTemplate = "docs/{documentName}/docs.json";
    
            });
    
            app.UseSwaggerUI(options =>
                {
                    //Build a swagger endpoint for each discovered API version  
                    foreach (var description in provider.ApiVersionDescriptions.OrderByDescending(x=>x.ApiVersion).AsList())
                    {
                        options.SwaggerEndpoint($"/docs/{description.GroupName}/docs.json", description.GroupName);
                    }
                    options.RoutePrefix = "docs";
                }
            );
    

    其中provider是DI注入的IApiVersionDescriptionProvider

    【讨论】:

      猜你喜欢
      • 2016-11-24
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-19
      • 2021-04-19
      • 1970-01-01
      相关资源
      最近更新 更多