Skip to content

Swagger 文档

Art Admin 使用自研中间件 SwaggerSloop 提供 API 文档,支持多分组、Token 认证。

在线预览

访问 api.aftbay.com/swagger 查看在线文档。

多 API 分组

Art Admin 将 API 按业务分为多个组,分别展示在 Swagger UI 中:

分组说明前缀
Admin后台管理接口/admin/*
App客户端接口/app/*
Common公共接口/common/*

路由定义时指定分组

csharp
public class XxxRouter : IAdminRouterBase
{
    public void AddRoutes(RouteGroupBuilder group)
    {
        var g = group.MapGroup("module/xxx")
            .WithGroupName(ApiGroups.Admin)  // 指定分组
            .WithTags("Xxx管理");            // 指定分类标签

        g.MapPost("list", async (XxxListRequest req, XxxService svc)
            => await svc.GetListAsync(req))
            .WithSummary("查询列表");        // 接口说明

        g.MapPost("save", async (XxxSaveRequest req, XxxService svc)
            => await svc.SaveAsync(req))
            .WithSummary("新增/编辑");
    }
}

分组常量

csharp
// ApiGroups.cs
public static class ApiGroups
{
    public const string Admin = "admin";
    public const string App = "app";
    public const string Common = "common";
}

Token 认证

Swagger UI 集成了 Bearer Token 认证,点击 Authorize 按钮输入 Token 即可调试需要鉴权的接口。

SwaggerSloop

SwaggerSloop 是 Art Admin 作者开源的 Swagger 增强中间件,特性:

  • 自动扫描 Minimal API 路由生成 OpenAPI 文档
  • 支持多分组导航(下拉切换 Admin / App / Common)
  • 内置 Bearer Token 认证 UI
  • 支持 WithSummary() / WithDescription() / WithTags() 等描述

注册

csharp
// Program.cs
builder.Services.AddSwaggerSloop();

// 中间件
app.UseSwaggerSloop();

常用注解

方法说明
.WithGroupName(name)指定 API 分组
.WithTags(tag)指定分类标签
.WithSummary(text)接口简要说明
.WithDescription(text)接口详细描述

覆盖鉴权

csharp
// 某个接口跳过鉴权
g.MapGet("public-data", ...)
    .AllowAnonymous();

// 或使用 ApiMeta 指定
g.MapGet("public-data", ...)
    .WithMetadata(new ApiMeta { AuthType = TokenType.无 });