Swashbuckle:如何修改.NET Core服务Swagger页面的服务显示标题?
自定义Swagger页面资源上方的标题(非浏览器标签页标题)
问题说明
使用Swashbuckle运行.NET Core WebAPI时,Swagger页面里所有API资源列表上方显示的标题默认取自程序集名称,需要自定义这个标题——注意它和通过app.UseSwaggerUI(options => options.DocumentTitle)修改的浏览器标签页标题不是同一个内容。
解决方案
这个标题对应OpenAPI文档中的Info.Title字段,只需在AddSwaggerGen的配置中指定即可,具体步骤如下:
- 扩展
AddSwaggerGen的配置,添加自定义标题:
builder.Services.AddSwaggerGen(options => { // 配置Swagger文档的基础信息,这里的Title就是资源上方显示的标题 options.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "我的自定义API服务", // 替换成你想要的标题文本 Version = "v1", Description = "基于.NET Core构建的WebAPI服务" // 可选:添加API的描述信息 }); });
- 完整修改后的项目代码:
var builder = WebApplication.CreateBuilder(args); // 向容器添加服务 builder.Services.AddControllers(); // 了解更多Swagger/OpenAPI配置细节 builder.Services.AddEndpointsApiExplorer(); // 配置Swagger自定义标题 builder.Services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "我的自定义API服务", Version = "v1", Description = "基于.NET Core构建的WebAPI服务" }); }); var app = builder.Build(); // 配置HTTP请求管道 if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run();
关键区分
- 资源上方标题:通过
OpenApiInfo.Title配置,显示在Swagger页面内容区的顶部(原程序集名称位置)。 - 浏览器标签页标题:通过
app.UseSwaggerUI(options => options.DocumentTitle = "自定义标签页标题")配置,显示在浏览器的标签栏中,两者互不影响。
内容的提问来源于stack exchange,提问作者Overlord Zurg
相关产品推荐
相关产品推荐

