Skip to content

API 文档(Swagger)

ArchSmith 集成了 SpringDoc OpenAPI,提供交互式 API 文档,既可作为独立页面访问,也可嵌入管理后台中。

配置

SpringDoc 在 application.yaml 中配置:

yaml
springdoc:
  api-docs:
    path: /v3/api-docs
    enabled: true
    version: openapi_3_0
  swagger-ui:
    path: /swagger-ui.html
    enabled: true
    url: /v3/api-docs
    tags-sorter: alpha
    operations-sorter: alpha
    doc-expansion: none
    display-request-duration: true
  default-produces-media-type: application/json
  default-consumes-media-type: application/json
  show-actuator: false
  pre-loading-enabled: true
  writer-with-default-pretty-printer: true

访问地址

资源URL描述
Swagger UIhttp://localhost:8080/swagger-ui/index.html交互式 API 浏览器
OpenAPI JSONhttp://localhost:8080/v3/api-docs原始 OpenAPI 3.0 规范
管理后台管理菜单中的嵌入 iframe管理后台内的 Swagger UI

嵌入管理后台

Swagger UI 作为 iframe 菜单项嵌入管理后台。配置为如下菜单条目:

  • 菜单类型:内嵌页(3)
  • frameSrc/swagger-ui/index.html
  • isFrameSrcInternaltrue

Nginx 配置将 Swagger 请求代理到后端:

nginx
# Swagger UI proxy (for iframe embedding)
location /swagger-ui/ {
    proxy_pass http://archsmith:8080/swagger-ui/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

# OpenAPI docs proxy
location /v3/api-docs {
    proxy_pass http://archsmith:8080/v3/api-docs;
    proxy_set_header Host $host;
}

API 接口汇总

认证相关

方法接口路径描述
POST/login用户登录
POST/refresh-token刷新 JWT 令牌
GET/getLoginUserInfo获取当前用户信息
GET/getRouters获取菜单路由(旧版)
GET/get-async-routes获取前端异步路由
GET/captchaImage生成验证码图片
GET/getConfig获取应用配置

管理端增删改查 API(/admin-api/

分类接口路径数量
用户管理/admin-api/user/*7 个接口
角色管理/admin-api/role/*6 个接口
菜单管理/admin-api/menu/*4 个接口
部门管理/admin-api/dept/*3 个接口
参数配置/admin-api/config/*4 个接口
通知公告/admin-api/notice/*4 个接口
操作日志/admin-api/operation-logs/*3 个接口
登录日志/admin-api/login-logs/*3 个接口
服务监控/admin-api/server-info1 个接口
文件管理/admin-api/file/*2 个接口

文件上传/下载

方法接口路径描述
POST/admin-api/file/upload上传文件(本地或 S3/RustFS 后端)
GET/admin-api/file/download/{id}根据 ID 下载文件

RESTful 系统 API(/system/

控制器基础路径接口数
SysUserController/system/user10 个接口
SysRoleController/system/role12 个接口
SysMenuController/system/menu11 个接口

为新接口添加 API 文档

在控制器上使用 SpringDoc 注解:

java
@Tag(name = "Custom Module", description = "Custom module operations")
@RestController
@RequestMapping("/custom")
public class CustomController {

    @Operation(summary = "Get item", description = "Retrieve an item by ID")
    @Parameter(name = "id", description = "Item ID", required = true)
    @GetMapping("/{id}")
    public CustomItem getItem(@PathVariable Long id) {
        // ...
    }
}

相关页面

Released under the MIT License.