.NET 7/8中如何为Minimal API分组添加描述/摘要?
.NET 7/8中如何为Minimal API分组添加描述/摘要?
哈哈,这个问题我之前也碰到过!Minimal API的分组默认确实不会自动带上描述,不过有两种简单的方法可以搞定,我给你详细说说:
方法一:直接给分组添加元数据
你可以在创建分组的时候,直接通过WithMetadata方法给标签加上描述,这样Swagger UI就能识别到啦:
var myapi = app.MapGroup("myapi") .WithTags("My API") // 这里添加分组的描述内容 .WithMetadata(new OpenApiTag { Name = "My API", Description = "这个分组负责处理所有Stuff相关的API操作,包括查询全部数据和单个条目" }) .WithOpenApi(); // 后续的API映射保持原有写法即可 myapi.MapGet("/", GetAllStuff).WithName("GetAllStuff"); myapi.MapGet("/{id}", GetSomeStuff).WithName("GetSomeStuff");
设置完成后,打开Swagger UI点击"My API"标签,就能看到你配置的分组描述了。
方法二:在SwaggerGen配置里统一管理标签描述
如果你的API分组比较多,想集中管理所有标签的描述,可以在配置Swagger的时候一次性设置:
首先在Program.cs里配置SwaggerGen:
builder.Services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "我的API文档", Version = "v1" }); // 给指定标签添加描述 c.Tags.Add(new OpenApiTag { Name = "My API", Description = "这是我的核心API分组,专门处理Stuff的查询请求" }); // 确保API按分组标签正确展示 c.TagActionsBy(api => new[] { api.GroupName ?? api.Tags.FirstOrDefault() ?? "Default" }); });
然后你的分组代码保持原来的写法就行:
var myapi = app.MapGroup("myapi").WithTags("My API").WithOpenApi(); myapi.MapGet("/", GetAllStuff).WithName("GetAllStuff"); myapi.MapGet("/{id}", GetSomeStuff).WithName("GetSomeStuff");
这种方法的好处是所有标签描述都集中在一处,方便后期统一维护修改。
注意哦,两种方法选一种就行,不用重复设置~
备注:内容来源于stack exchange,提问作者user479338
相关产品推荐
相关产品推荐

