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隐藏顶部栏的下载链接区域:
- 在项目的
wwwroot目录下创建swagger-custom.css文件,添加如下样式:
/* 隐藏BaseURL和Swagger.json下载链接区域 */ .swagger-ui .topbar .download-url-wrapper { display: none !important; }
- 在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
相关产品推荐
相关产品推荐

