ASP.NET Core 6.0 最小 API / Swagger 标签
ASP.NET Core 6.0 Minimal API / Swagger tags
有什么方法可以更改给定 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");
已更新
作为解决方法,我在配置 swagger 生成器时使用了 TagActionsBy
方法。
builder.Services.AddSwaggerGen(c =>
{
c.TagActionsBy(d =>
{
return new List<string>() { d.ActionDescriptor.DisplayName! };
});
});
看我的blog post.
我认为共享同一路由的所有操作将默认分组
但要明确定义组,您需要使用 swagger tag,它可以像这样使用:
app.MapGet("/todo", [SwaggerOperation(Tags = new[] { "MyTag" })]() => "Hello world");
怎么样:
app.MapGet("/todo", () => "Hello world").WithTags("ToDo");
有什么方法可以更改给定 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");
已更新
作为解决方法,我在配置 swagger 生成器时使用了 TagActionsBy
方法。
builder.Services.AddSwaggerGen(c =>
{
c.TagActionsBy(d =>
{
return new List<string>() { d.ActionDescriptor.DisplayName! };
});
});
看我的blog post.
我认为共享同一路由的所有操作将默认分组
但要明确定义组,您需要使用 swagger tag,它可以像这样使用:
app.MapGet("/todo", [SwaggerOperation(Tags = new[] { "MyTag" })]() => "Hello world");
怎么样:
app.MapGet("/todo", () => "Hello world").WithTags("ToDo");