我目前正在将 ASP.NET API 更改为 OpenAPI 格式,因此我使用 Swagger 自动生成 API 文件。
似乎无法在全球范围内定义这些标签的顺序。此外,我想为每个标签添加描述。
有什么想法吗?
我已经发现我可以使用 [Tags] 属性向控制器和方法添加标签,而且我知道,我可以直接在生成的 yaml 中添加标签描述和内容,但我想使用完全创建 yaml在 ASP.NET 中大摇大摆。
您可以尝试使用 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>();
});