ASP.NET Core Minimal API配置Swagger后XML注释不显示问题求助
问题原因
ASP.NET Core Minimal API 默认不会自动抓取端点上方的XML注释到Swagger中,你当前的配置只适配了传统Controller类的注释读取,缺少Minimal API专属的配置项。
解决方案步骤
步骤1:修正Swagger的XML注释加载配置
调用IncludeXmlComments时传入第二个参数true,开启对Minimal API端点注释的解析支持,代码修改如下:
var filePath = Path.Combine(System.AppContext.BaseDirectory, "Minimal_API.xml"); // 第二个参数设为true表示包含所有端点(包括Minimal API映射的端点)的XML注释 x.IncludeXmlComments(filePath, true);
步骤2:确认项目XML文档配置正确
- 右键项目→【属性】→【生成】→【输出】
- 确认勾选了「XML文档文件」,且文件名和你代码中读取的
Minimal_API.xml完全一致 - 把XML文档文件的「复制到输出目录」属性设置为「如果较新则复制」,避免运行时找不到文件
步骤3:升级Swashbuckle.AspNetCore依赖版本
如果使用的是.NET 6及以上版本,请将Swashbuckle.AspNetCore NuGet包升级到6.0+的最新稳定版,旧版本对Minimal API的注释支持存在缺陷。
步骤4(可选):补充端点元数据配置
如果修改后还是不显示,可以给映射的端点追加WithOpenApi()扩展方法,强制Swagger识别该端点的元数据:
/// <summary> /// Gets the list of all records /// </summary> app.MapGet("/weatherforecast2", () => { var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; var forecast = Enumerable.Range(1, 5).Select(index => new WeatherForecast ( DateTime.Now.AddDays(index), Random.Shared.Next(-20, 55), summaries[Random.Shared.Next(summaries.Length)] )) .ToArray(); return forecast; }) .WithOpenApi(); // 追加这行
验证方式
完成以上配置后,清理项目→重新生成→运行,即可在Swagger UI中看到对应接口的summary注释。
内容的提问来源于stack exchange,提问作者Kenlly Acosta
相关产品推荐
相关产品推荐

