Asp.Net核心Swagger按字母顺序对标记进行排序

bd1hkmkf  于 2022-11-06  发布在  .NET
关注(0)|答案(1)|浏览(236)

我正在使用asp.net core 6和Spring扣。AspNetCore
我在我的动作中使用了SwaggerAnnotations
但我的标签组未排序
这是我的Swagger用户界面页面

我的程序. cs:

builder.Services.AddSwaggerGen(c => {
  c.SwaggerDoc("v1", new OpenApiInfo {
    Title = "Api", Version = "v1"
  });
  c.EnableAnnotations();
});

 ....

var app = builder.Build();

app.UseSwagger();
app.UseSwaggerUI(c => {
  c.SwaggerEndpoint("/swagger/v1/swagger.json", "Shoppy.WebApi");
  c.InjectStylesheet("/swagger-ui/css/custom.css");
});
laik7k3q

laik7k3q1#

我有办法了
我创建了这个自定义DocumentFiler

public class OrderTagsDocumentFilter: IDocumentFilter 
{
    public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context) 
    {
        swaggerDoc.Tags = swaggerDoc.Tags
             .OrderBy(x => x.Name).ToList();
    }
}

并将其添加到Program.cs中

services.AddSwaggerGen(c => {
  c.SwaggerDoc("v1", new OpenApiInfo {
    Title = "Shoppy.WebApi", Version = "v1"
  });
  c.EnableAnnotations();

  c.DocumentFilter<OrderTagsDocumentFilter>();
});

相关问题