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

NSwag:如何在Swagger UI中隐藏定义选择、基础URL及协议等元素

在.NET Core WebAPI(NSwag)中隐藏Swagger UI指定元素的实现方案

完全可以实现,以下是针对你提到的三个元素的具体隐藏方法:

1. 隐藏右上角「Select Definition」下拉菜单

这个菜单仅在存在多个API定义时显示,如果你只有一个API文档,可通过配置直接禁用多文档支持来隐藏它:

.NET Core 3.x 及更早版本(Startup.cs)

services.AddOpenApiDocument(settings =>
{
    // 指定唯一文档名称,避免多文档场景
    settings.DocumentName = "v1";
});

app.UseOpenApi();
app.UseSwaggerUi3(settings =>
{
    // 强制禁用选择器,确保下拉菜单隐藏
    settings.DisableSelector = true;
});

.NET 6+ 顶级语句(Program.cs)

builder.Services.AddOpenApiDocument(settings =>
{
    settings.DocumentName = "v1";
});

app.UseOpenApi();
app.UseSwaggerUi3(settings =>
{
    settings.DisableSelector = true;
});

2. 隐藏BaseURL及Swagger.json链接

通过自定义CSS隐藏顶部栏的下载链接区域:

  1. 在项目的wwwroot目录下创建swagger-custom.css文件,添加如下样式:
/* 隐藏BaseURL和Swagger.json下载链接区域 */
.swagger-ui .topbar .download-url-wrapper {
    display: none !important;
}
  1. 在Swagger UI配置中注入该自定义样式:
app.UseSwaggerUi3(settings =>
{
    settings.CustomStylesheetPath = "/swagger-custom.css";
});

3. 隐藏Schemes下拉菜单

同样通过CSS直接隐藏方案选择容器,在上述swagger-custom.css中追加:

/* 隐藏Schemes下拉菜单 */
.swagger-ui .scheme-container {
    display: none !important;
}

如果偏好通过配置而非CSS,也可以在API文档生成时固定Schemes,这样下拉菜单会自动消失:

services.AddOpenApiDocument(settings =>
{
    settings.GeneratorSettings.DefaultSchemes = new[] { OpenApiSchema.Https };
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:45:35