在 C# 中使用 Swagger 更改标签顺序

问题描述 投票:0回答:1

我目前正在将 ASP.NET API 更改为 OpenAPI 格式,因此我使用 Swagger 自动生成 API 文件。

似乎无法在全球范围内定义这些标签的顺序。此外,我想为每个标签添加描述。

有什么想法吗?

我已经发现我可以使用 [Tags] 属性向控制器和方法添加标签,而且我知道,我可以直接在生成的 yaml 中添加标签描述和内容,但我想使用完全创建 yaml在 ASP.NET 中大摇大摆。

c# asp.net asp.net-core swagger openapi
1个回答
0
投票

您可以尝试使用 IOperationFilter 重新排序标签。

public class TagOrderOperationFilter : IOperationFilter
{
    public void Apply(OpenApiOperation operation, OperationFilterContext context)
    {
        // Define your desired tag order here
        var orderedTags = new List<string> { "Tag1", "Tag2", "Tag3" };

        // Reorder tags for each operation based on the specified order
        operation.Tags = operation.Tags
            .OrderBy(tag => orderedTags.IndexOf(tag.Name))
            .ToList();
    }
}

然后在program.cs中

builder.Services.AddSwaggerGen(c =>
{
    c.OperationFilter<TagOrderOperationFilter>();
});
© www.soinside.com 2019 - 2024. All rights reserved.