ASP.NET Core Web Api:SwaggerUI默认版本设置及版本缺失问题
ASP.NET Core Swagger 多版本配置问题解决
v2版本未出现在下拉框的原因
核心原因是Swagger UI中间件配置时遗漏了v2版本的文档端点注册:AddSwaggerGen仅负责生成swagger.json文件,但Swagger UI要展示哪些版本,需要在UseSwaggerUI中逐个添加对应版本的端点。你当前只配置了v1的端点,所以下拉框仅显示v1。
设置默认版本为v2 + 修复v2显示问题
在Program.cs(或Startup.cs)的中间件配置段,修改UseSwaggerUI的代码如下:
app.UseSwaggerUI(options => { // 先添加v2端点,使其成为默认加载版本 options.SwaggerEndpoint("/swagger/v2/swagger.json", "API V2"); // 添加v1端点,确保下拉框显示两个版本 options.SwaggerEndpoint("/swagger/v1/swagger.json", "API V1"); // 可选:配置UI默认行为(如展开模型深度) options.DefaultModelsExpandDepth(2); options.DefaultModelExpandDepth(2); });
关键说明
- 添加v2端点:必须通过
SwaggerEndpoint方法将v2的swagger.json路径和版本名称注册到UI中,下拉框才会显示该版本。 - 默认版本优先级:Swagger UI会默认加载第一个注册的
SwaggerEndpoint,因此将v2放在v1前面即可让v2成为默认加载版本。
另外,确认AddSwaggerGen中已正确配置两个版本的文档(你已生成对应的swagger.json,这一步应该没问题):
services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" }); options.SwaggerDoc("v2", new OpenApiInfo { Title = "My API", Version = "v2" }); });
内容的提问来源于stack exchange,提问作者user3057544
相关产品推荐
相关产品推荐

