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

如何配置.NET API入口直接跳转至Swagger文档

实现根路径跳转至Swagger文档页面的配置方法

当然可以实现,有两种常用方案供你选择:

方案一:直接将Swagger UI挂载到根路径

通过设置Swagger UI的路由前缀为空,让用户访问localhost:port/时直接加载Swagger页面,地址栏不会发生跳转。

在配置Swagger UI中间件时添加RoutePrefix = string.Empty:

app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "Demo v1");
    c.RoutePrefix = string.Empty; // 将Swagger UI部署到根路径
});

方案二:根路径302重定向到Swagger页面

如果希望保留Swagger的默认路径(/swagger),可以给根路径添加重定向规则,用户访问localhost:port/时会跳转到Swagger页面,地址栏会显示/swagger后缀。

在Swagger中间件配置完成后添加以下代码:

app.MapGet("/", context =>
{
    return context.Response.Redirect("/swagger");
});

完整示例代码(结合你的原有配置)

using System.Reflection;
using Microsoft.OpenApi.Models;

var builder = WebApplication.CreateBuilder(args);

// 你的原有Swagger服务配置
builder.Services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new OpenApiInfo
    {
        Title = "Demo",
        Version = "v1",
        Description = "This is a demo api"
    });

    var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
    var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
    c.IncludeXmlComments(xmlPath);
});

builder.Services.AddControllers();

var app = builder.Build();

// 建议仅在开发环境启用Swagger
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    
    // 选择其中一种方案即可
    // 方案一:挂载到根路径
    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "Demo v1");
        c.RoutePrefix = string.Empty;
    });

    // 方案二:根路径重定向
    // app.MapGet("/", context => context.Response.Redirect("/swagger"));
}

app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();

app.Run();

内容的提问来源于stack exchange,提问作者Sachihiro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:27:16