首页 > 解决方案 > ASP.NET Core 6.0 Minimal API / Swagger 标签

问题描述

有什么方法可以更改http用最少 api 编写的给定方法的标签吗?

builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

...

app.MapGet("/todo", () => "Hello world");

这样我就可以对文档中的方法进行逻辑分组,类似于它们在控制器中的方法。

已编辑

我试过了(来自@Modar Na 的提示)SwaggerOperation,不幸的是它没有帮助。

app.MapGet("/todo", [SwaggerOperation(Tags = new[] { "ToDo" })]() => "Hello world");
app.MapPost("/todo", [SwaggerOperation(Tags = new[] { "ToDo" })]() => "Hello world");

app.MapGet("/projects", [SwaggerOperation(Tags = new[] { "Projects" })]() => "Hello world");
app.MapPost("/projects", [SwaggerOperation(Tags = new[] { "Projects" })]() => "Hello world");

在此处输入图像描述

更新

作为一种解决方法,我TagActionsBy在配置 swagger 生成器时使用了该方法。

builder.Services.AddSwaggerGen(c =>
{
    c.TagActionsBy(d =>
    {
        return new List<string>() { d.ActionDescriptor.DisplayName! };
    });
});

请参阅我的博文

标签: asp.net-coreswaggerswashbuckle.aspnetcore

解决方案


我认为默认情况下,所有共享同一路由的操作都会被分组

但是为了明确定义组,您需要使用swagger 标签,它可以像这样使用:

app.MapGet("/todo", [SwaggerOperation(Tags = new[] { "MyTag" })]() => "Hello world");

控制器方法的链接


推荐阅读