You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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);
});

关键说明

  1. 添加v2端点:必须通过SwaggerEndpoint方法将v2的swagger.json路径和版本名称注册到UI中,下拉框才会显示该版本。
  2. 默认版本优先级: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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 08:05:27