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

.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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 15:53:02