fix: 兼容swagger旧路径并修复测试构建

This commit is contained in:
root
2026-01-06 06:46:19 +00:00
parent 1273a3b72a
commit abd5752ad1
3 changed files with 19 additions and 1 deletions

View File

@@ -52,8 +52,10 @@ public static class SwaggerExtensions
var provider = app.ApplicationServices.GetRequiredService<IApiVersionDescriptionProvider>();
var settings = app.ApplicationServices.GetRequiredService<SwaggerDocumentSettings>();
const string routePrefix = "api/docs";
// 1. 注册 Swagger 中间件
const string legacyRoutePrefix = "swagger";
// 1. 注册 Swagger 中间件(新旧入口同时支持)
app.UseSwagger(options => { options.RouteTemplate = $"{routePrefix}/{{documentName}}/swagger.json"; });
app.UseSwagger(options => { options.RouteTemplate = $"{legacyRoutePrefix}/{{documentName}}/swagger.json"; });
app.UseSwaggerUI(options =>
{
options.RoutePrefix = routePrefix;
@@ -67,6 +69,19 @@ public static class SwaggerExtensions
// 2. 显示请求耗时
options.DisplayRequestDuration();
});
app.UseSwaggerUI(options =>
{
options.RoutePrefix = legacyRoutePrefix;
foreach (var description in provider.ApiVersionDescriptions)
{
// 3. 使用相对路径适配反向代理/网关前缀
options.SwaggerEndpoint(
$"./{description.GroupName}/swagger.json",
$"{settings.Title} {description.ApiVersion}");
}
// 2. 显示请求耗时
options.DisplayRequestDuration();
});
return app;
}
}

View File

@@ -1,6 +1,7 @@
using System.Text;
using System.Text.Json;
using FluentAssertions;
using Microsoft.AspNetCore.Http;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging.Abstractions;
using TakeoutSaaS.Application.Dictionary.Contracts;
@@ -443,6 +444,7 @@ public sealed class DictionaryApiTests
new DictionaryItemRepository(context),
cache,
tenantProvider,
new HttpContextAccessor { HttpContext = new DefaultHttpContext() },
NullLogger<DictionaryCommandService>.Instance);
}
@@ -494,6 +496,7 @@ public sealed class DictionaryApiTests
cache,
tenantProvider,
currentUser,
new HttpContextAccessor { HttpContext = new DefaultHttpContext() },
NullLogger<DictionaryImportExportService>.Instance);
}