0
我們已經在Web Api項目上實現了Swashbuckle,並且我注意到SwaggerUI測試工具顯示地址中指定的任何版本的完全相同的信息。更具體地說,它顯示了SwaggerConfig中第一個VersionInfoBuilder最先出現的swagger信息。Swashbuckle UI顯示不同版本的相同信息
因此,例如,如果我導航到「/ preview/swagger/index」 - 顯示的UI是與版本'preview'無關的所有v1信息。
我在這裏做錯了什麼?
public class SwaggerConfig
{
private SwaggerConfig() { }
public static void Register()
{
var thisAssembly = typeof(SwaggerConfig).Assembly;
GlobalConfiguration.Configuration
.EnableSwagger("{apiVersion}/swagger", c =>
{
c.MultipleApiVersions(
(apiDesc, version) =>
{
var path = apiDesc.RelativePath.Split('/');
var pathVersion = path[0];
return CultureInfo.InvariantCulture.CompareInfo.IndexOf(pathVersion, version, CompareOptions.IgnoreCase) >= 0;
},
vc =>
{
vc.Version("v1", "Api - v1");
vc.Version("preview", "Api - Preview");
});
})
.EnableSwaggerUi("{apiVersion}/swagger/{*assetPath}", c =>
{
c.DisableValidator();
});
}
}
有趣。但至少可以說這很奇怪。爲什麼EnableSwaggerUi()甚至會打擾{apiVersion}作爲其路由模板的一部分,然後甚至不顯示url所指示的版本?爲什麼用戶不得不關閉文本框然後點擊探索?我發現EnableDiscoveryUrlSelector()有一個選項 - 這也是不希望的。只需要Swagger UI根據當前路線及其值顯示正確的信息。 – Mike