.net core 的 swagger 分组简单使用

1.Programm中添加

     builder.Services.AddSwaggerGen(c =>
     {
         c.SwaggerDoc("v1", new OpenApiInfo { Title = "BarcodeAPI", Version = "v1" });
         c.SwaggerDoc("WMS", new OpenApiInfo { Title = "WMS", Version = "WMS" });
         c.DocInclusionPredicate((docName, apiDesc) =>
         {
             if (!apiDesc.TryGetMethodInfo(out MethodInfo methodInfo)) return false;

             var groupName = methodInfo.DeclaringType.GetCustomAttribute<ApiGroupAttribute>()?.GroupName ?? "v1";
             return groupName == docName;
         });
     });
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "BarcodeAPI v1");
        c.SwaggerEndpoint("/swagger/WMS/swagger.json", "WMS");
    });
}

2.增加一个特性

[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
public class ApiGroupAttribute : Attribute
{
    public string GroupName { get; }

    public ApiGroupAttribute(string groupName)
    {
        GroupName = groupName;
    }
}

未添加特性的默认为v1

 

posted on 2025-01-22 14:19  _一级菜鸟  阅读(10)  评论(0编辑  收藏  举报