如何在 v5 中为 Swagger 定义相对路径?
How to define a relative path for Swagger in v5?
我正在将我的 .NET Core 应用程序从 Swashbuckle v4 升级到 v5。我目前在 Startup.ConfigureServices 中有以下定义相对路径的代码:
app.UseSwagger(c => {
c.PreSerializeFilters.Add((swaggerDoc, httpReq) => swaggerDoc.BasePath = "/folder/data");
});
我无法将其转换为 v5。我尝试了以下方法,但我看不到在哪里设置路径:
c.PreSerializeFilters.Add((swagger, httpReq) =>
{
var paths = new OpenApiPaths();
var pathItem = new OpenApiPathItem();
paths.Add("main", pathItem);
swagger.Paths = paths;
});
在 v5 中,basePath 被服务器替换为: https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/1173
您可以使用 routeTemplate 设置 json 文件的路径,以及使用服务器从 ui 发出的请求的路径:
var basePath = "/v1";
app.UseSwagger(c =>
{
c.RouteTemplate = "swagger/{documentName}/swagger.json";
c.PreSerializeFilters.Add((swaggerDoc, httpReq) =>
{
swaggerDoc.Servers = new List<OpenApiServer> { new OpenApiServer
{ Url = $"{httpReq.Scheme}://{httpReq.Host.Value}{basePath}" } };
});
});
并配置 ui:
app.UseSwaggerUi(options =>
{
options.swaggerEndpoint($"swagger/{apiVersion}/swagger.json, "my api v1");
}
相对路径可用于使用 ./ 或 ../ 的端点
我正在将我的 .NET Core 应用程序从 Swashbuckle v4 升级到 v5。我目前在 Startup.ConfigureServices 中有以下定义相对路径的代码:
app.UseSwagger(c => {
c.PreSerializeFilters.Add((swaggerDoc, httpReq) => swaggerDoc.BasePath = "/folder/data");
});
我无法将其转换为 v5。我尝试了以下方法,但我看不到在哪里设置路径:
c.PreSerializeFilters.Add((swagger, httpReq) =>
{
var paths = new OpenApiPaths();
var pathItem = new OpenApiPathItem();
paths.Add("main", pathItem);
swagger.Paths = paths;
});
在 v5 中,basePath 被服务器替换为: https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/1173
您可以使用 routeTemplate 设置 json 文件的路径,以及使用服务器从 ui 发出的请求的路径:
var basePath = "/v1";
app.UseSwagger(c =>
{
c.RouteTemplate = "swagger/{documentName}/swagger.json";
c.PreSerializeFilters.Add((swaggerDoc, httpReq) =>
{
swaggerDoc.Servers = new List<OpenApiServer> { new OpenApiServer
{ Url = $"{httpReq.Scheme}://{httpReq.Host.Value}{basePath}" } };
});
});
并配置 ui:
app.UseSwaggerUi(options =>
{
options.swaggerEndpoint($"swagger/{apiVersion}/swagger.json, "my api v1");
}
相对路径可用于使用 ./ 或 ../ 的端点