Swagger用于最小API

des4xlb0  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(90)

我正在尝试在我的项目中使用最小的API。我面临的问题是,传统的控制器是在一种方式, swagger 地产生一个单独的部分,为每个控制器。但是我看不到在Minimal API中添加这种分离的选项。是否可以使用最少的API在Swagger中添加不同的部分?

pb3s4cty

pb3s4cty1#

你可以使用WithTags扩展方法:
OpenAPI支持使用标签对象对operations进行分类。这些标记通常用于在Swagger UI中对操作进行分组。这些标记可以通过在具有所需标记的端点上调用WithTags扩展方法来添加到操作中。

app.MapGet("/one", () => "Hello World!").WithTags("xyz");
app.MapGet("/two", () => "Hello World!").WithTags("xyz");

字符串


的数据
它与MapGroup非常匹配:
MapGroup扩展方法帮助组织具有公共前缀的端点组。它减少了重复代码,并允许通过对RequireAuthorizationWithMetadata等添加端点元数据的方法的单个调用来自定义整个端点组。

var adminGroup = app.MapGroup("/admin")
    .WithTags("admin");
adminGroup.MapGet("/adminThing", () => "some");
adminGroup.MapPost("/doAdminThing", () => "some1");

var userGroup = app.MapGroup("/user")
    .WithTags("user");
userGroup.MapGet("/userThing", () => "some");
userGroup.MapPost("/doUserThing", () => "some1");


z9gpfhce

z9gpfhce2#

您可以使用.WithOpenApi()扩展名,例如

app.MapGet("/", ...)
 .WithOpenApi(o => {Tags = new List<string>{"Section1"}})

字符串

相关问题