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

能否使用SwashBuckle修改Swagger UI对应的HTML页面标题

操作方案

完全可以通过SwashBuckle的内置配置修改Swagger UI页面的标题,不同版本的配置方式如下:

SwashBuckle.AspNetCore 6.x 及以上版本

直接在SwaggerUI的配置项中指定DocumentTitle属性即可,示例代码(.NET 6+ 顶层语句写法):

var builder = WebApplication.CreateBuilder(args);

// 省略其他服务注册配置
builder.Services.AddSwaggerGen();

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI(options =>
    {
        options.SwaggerEndpoint("/swagger/v1/swagger.json", "用户服务 v1");
        // 这里设置页面标题
        options.DocumentTitle = "用户服务接口文档";
    });
}

app.Run();

SwashBuckle.AspNetCore 5.x 及更低版本

低版本没有内置DocumentTitle配置,需要通过注入自定义头部脚本实现:

  1. 在项目中新增一个HTML文件,命名为swagger-custom-head.html,内容如下:
<script>
    // 页面加载完成后替换标题
    window.onload = () => {
        document.title = "支付服务接口文档";
    };
</script>
  1. 右键点击该文件,选择「属性」,将「生成操作」设置为「嵌入的资源」
  2. 在SwaggerUI配置中引入自定义头部文件:
app.UseSwaggerUI(options =>
{
    options.SwaggerEndpoint("/swagger/v1/swagger.json", "支付服务 v1");
    options.HeadContent = "swagger-custom-head.html";
});

多版本接口动态标题配置

如果你的服务存在多版本接口,可以配置动态标题,跟随当前选中的接口版本自动切换:

app.UseSwaggerUI(options =>
{
    options.SwaggerEndpoint("/swagger/v1/swagger.json", "商品服务 v1");
    options.SwaggerEndpoint("/swagger/v2/swagger.json", "商品服务 v2");
    // 切换版本时自动更新标题
    options.OnComplete(@"() => {
        const currentVersion = document.querySelector('.swagger-ui .select-wrapper span').textContent;
        document.title = currentVersion + ' 接口文档';
    }");
});

注意事项

  • 修改配置后需要重新编译启动服务才会生效
  • 标题修改为前端逻辑,不需要调整反向代理、服务部署等相关配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:18:04