Skip to content

API 契约 ​

后端为 Express + SQLite(node:sqlite),所有业务接口遵循同一套响应契约。本文由 ai-drafts/2026-10-20-api-contract/gen-api-routes.mjs 从路由源码与权限表生成清单部分, 新增接口后重跑该脚本即可同步;契约规则与示例为手写维护。

统一响应结构 ​

所有业务 JSON 响应统一走 success() / failed(),结构为:

ts
interface ApiResponse<T> {
  code: number      // 与 HTTP status 一致:200 成功,4xx/5xx 为错误码
  message: string   // 人类可读提示;校验失败时为「字段路径: 原因」
  data: T           // 业务数据,失败时为 null
  requestId?: string // 请求追踪 ID,与 X-Request-Id 响应头一致
}
  • requestId 由 requestId 中间件统一注入响应体,同时保留 X-Request-Id 响应头(CORS 已暴露给浏览器), 前端异常日志据此与后端日志串联。
  • 健康探针(/health/*)与 MCP 传输层不走该结构。

错误码表 ​

HTTP status 与业务 code 保持一致,不额外设计 0/1 成功码:

code语义抛出来源
400请求参数校验失败 / 非法 JSONvalidate 中间件、BadRequestError
401未登录或 token 失效authMiddleware、UnauthorizedError
403无权限 / 初始密码未修改permissionMiddleware、ForbiddenError
404资源不存在NotFoundError
409业务冲突(用户名/角色名重复等)ConflictError
413请求体超过 256KB 上限body-parser
428需要先完成滑块验证码PreconditionRequiredError
429尝试过于频繁TooManyRequestsError
500服务器内部错误(对外只暴露统一文案,堆栈只进服务端日志)errorHandler 兜底

分页结构 ​

所有分页接口的 data 统一为:

ts
interface PageResult<T> {
  list: T[]      // 当前页数据
  total: number  // 过滤条件下的总条数
  page: number   // 页码,默认 1,最小 1
  pageSize: number // 每页数量,默认 10,最小 1,最大 100
}

例外:监控日志列表 / 增量轮询为流式读取,pageSize 上限单独放宽(5000 / 2000),代码内有注释标注。

认证方式 ​

  • 登录后持 Bearer <token> 请求(Authorization 头);token 由 POST /admin/login 签发,默认 2h,前端静默续期。
  • 权限模型:RBAC。会话每次请求实时解析角色权限码;超级管理员持有 *。
  • 员工首次登录未改密期间仅放行会话类接口(/admin/info、/admin/updatePassword 等),其余返回 403。

接口清单 ​

「认证」列:公开 = 无需登录;登录 = 需 Bearer token。「权限标识」列即 RBAC 权限码, 超级管理员通配;登录即可 表示仅要求会话。

健康检查(部署探针) ​

方法路径认证权限标识
GET/health/live公开—
GET/health/ready公开—
GET/health/info公开—

认证与会话 ​

方法路径认证权限标识
GET/admin/login/state公开—
GET/admin/captcha公开—
POST/admin/captcha/verify公开—
POST/admin/login公开—
GET/admin/refreshToken登录—(登录即可)
GET/admin/info登录—(登录即可)
POST/admin/logout登录—(登录即可)
POST/admin/updatePassword登录—(登录即可)

用户管理 ​

方法路径认证权限标识
POST/admin/register登录system:user:add
GET/admin/list登录system:user:list
GET/admin/:id登录system:user:list
POST/admin/update/:id登录system:user:edit
POST/admin/delete/:id登录system:user:delete
POST/admin/updateStatus/:id登录system:user:edit
POST/admin/role/update登录system:user:assignRole
GET/admin/role/:adminId登录system:user:list / system:user:assignRole

角色管理 ​

方法路径认证权限标识
GET/role/list登录system:role:list
POST/role/create登录system:role:add
GET/role/all登录system:role:list / system:user:assignRole / org:employee:assignRole
GET/role/menu/:roleId登录system:role:list / system:role:assignMenu
POST/role/menu/update登录system:role:assignMenu
GET/role/:id登录system:role:list
POST/role/update/:id登录system:role:edit
POST/role/delete/:id登录system:role:delete

菜单管理 ​

方法路径认证权限标识
GET/menu/list登录system:menu:list
GET/menu/tree登录system:menu:list / system:role:assignMenu
GET/menu/all登录system:menu:list / system:role:assignMenu
GET/menu/permissions登录system:menu:list
POST/menu/create登录system:menu:add
GET/menu/:id登录system:menu:list
POST/menu/update/:id登录system:menu:edit
POST/menu/delete/:id登录system:menu:delete

系统架构 ​

方法路径认证权限标识
GET/system/architecture登录system:architecture:list

元数据 ​

方法路径认证权限标识
GET/metadata/sets/page登录metadata:set:list
GET/metadata/sets/code/:setCode/items登录—(登录即可)
GET/metadata/sets/:id登录metadata:set:list
POST/metadata/sets/add登录metadata:set:add
POST/metadata/sets/:id/update登录metadata:set:edit
POST/metadata/sets/:id/status登录metadata:set:edit
POST/metadata/sets/:id/delete登录metadata:set:delete
POST/metadata/items/add登录metadata:item:add
POST/metadata/items/batch登录metadata:item:add
POST/metadata/items/:id/update登录metadata:item:edit
POST/metadata/items/:id/status登录metadata:item:edit
POST/metadata/items/:id/delete登录metadata:item:delete

组织架构 ​

方法路径认证权限标识
GET/org/profile登录—(登录即可)
POST/org/profile/update登录—(登录即可)
GET/org/summary登录org:read
GET/org/dept-tree登录org:read
GET/org/employees登录org:read
GET/org/employees/detail登录org:read
POST/org/employees/create登录org:employee:create
POST/org/employees/:id/update登录org:employee:edit
POST/org/employees/:id/status登录org:employee:edit
POST/org/employees/:id/grantAccount登录org:employee:account
POST/org/employees/:id/resetPassword登录org:employee:account
POST/org/employees/:id/accountStatus登录org:employee:account
GET/org/employees/:id/roles登录org:employee:assignRole
POST/org/employees/:id/roles登录org:employee:assignRole
GET/org/roles/:id/permissions登录org:employee:assignRole
GET/org/roles登录org:read
GET/org/positions登录org:read
GET/org/functional-orgs登录org:read

表单 ​

方法路径认证权限标识
GET/form/list登录form:form:list
GET/form/detail登录form:form:list / form:data:list
GET/form/versions登录form:form:list
GET/form/categories/tree登录form:form:list
POST/form/categories/create登录form:form:edit
POST/form/categories/reorder登录form:form:edit
POST/form/categories/:id/update登录form:form:edit
POST/form/categories/:id/status登录form:form:edit
POST/form/categories/:id/delete登录form:form:edit
POST/form/create登录form:form:add
POST/form/copy登录form:form:add
POST/form/update登录form:form:edit
POST/form/draft登录form:form:edit
POST/form/publish登录form:form:edit
POST/form/retire登录form:form:edit
POST/form/revive登录form:form:edit
POST/form/delete登录form:form:delete
POST/form/render登录form:form:list / form:data:list / form:data:submit

表单数据 ​

方法路径认证权限标识
POST/form/data/submit登录form:data:submit
GET/form/data/list登录form:data:list
GET/form/data/detail登录form:data:list
POST/form/data/update登录form:data:edit
POST/form/data/updateStatus登录form:data:edit
POST/form/data/delete登录form:data:delete

监控 ​

方法路径认证权限标识
POST/monitor/collect公开—
GET/monitor/meta登录—(登录即可)
GET/monitor/apps登录monitor:app:list
POST/monitor/apps/create登录monitor:app:add
POST/monitor/apps/update登录monitor:app:edit
POST/monitor/apps/:appId/channels/test登录monitor:app:edit
GET/monitor/apps/:appId/channels/tests登录monitor:app:list
GET/monitor/apps/:appId登录monitor:app:list
POST/monitor/apps/:appId/archive登录monitor:app:edit
POST/monitor/apps/:appId/unarchive登录monitor:app:edit
GET/monitor/apps/:appId/queue-stats登录monitor:app:list
POST/monitor/apps/:appId/queue/start登录monitor:app:edit
POST/monitor/apps/:appId/queue/stop登录monitor:app:edit
GET/monitor/logs登录monitor:log:list
GET/monitor/logs/export登录monitor:log:list
GET/monitor/audit/stats登录monitor:log:list
GET/monitor/logs/incremental登录monitor:log:list
GET/monitor/stats/workbench登录monitor:stats:list
GET/monitor/stats/perf登录monitor:stats:list
GET/monitor/stats/api登录monitor:stats:list
GET/monitor/stats/behavior登录monitor:stats:list
GET/monitor/stats/error登录monitor:stats:list
GET/monitor/stats/biz-error登录monitor:stats:list
GET/monitor/alerts/history登录monitor:alert:list
GET/monitor/alerts/health登录monitor:alert:list
POST/monitor/alerts/status/batch登录monitor:alert:handle
POST/monitor/alerts/:id/status登录monitor:alert:handle
POST/monitor/alerts/retry登录monitor:alert:retry
GET/monitor/maintenance/status登录monitor:maintenance:prune
POST/monitor/maintenance/prune登录monitor:maintenance:prune

MCP ​

方法路径认证权限标识
POST/mcp公开—
GET/mcp公开—
DELETE/mcp公开—
GET/mcp/health公开—