跳转到内容

接口约定

管理 API 使用 /api/v1 前缀。应用通过 sdk.Route 注册相对路径并声明权限。0.13.0 的端点覆盖认证、统一授权(显式 Grants 与授权管理控制面)、用户与组织、字典参数、日志、通知、工作流、AI 模型与 Agent、数据交换以及业务附件等模块。精确接口合同以同版本核心源码中的 docs/API.md 为准。

受保护接口携带访问令牌:

Authorization: Bearer <token>
接口作用
POST /api/v1/auth/login通过账号(姓名或邮箱)与密码登录
POST /api/v1/auth/refresh用原访问令牌刷新
POST /api/v1/auth/logout注销当前账号的全部会话
GET /api/v1/auth/profile获取当前用户、角色身份 code 与能力投影
GET /api/v1/auth/menus获取当前用户可见的菜单树

令牌为 JWT,默认有效期 60 分钟(JWT_TTL),刷新窗口默认 14 天(JWT_REFRESH_TTL)。不签发独立 refresh token:原访问令牌即使已过期,只要未超过刷新窗口,仍可调用 refresh 换取新令牌;超过窗口返回 401 + code 1003,须重新登录。

JWT 携带签名保护的 auth_revision,普通鉴权与刷新都实时比对数据库当前版本;注销、改密、后台账号编辑、角色替换、禁用或删除等递增修订的操作会撤销该账号此前的全部会话,撤销状态在重启和多实例部署后仍然有效。手机号仅作为联系信息,不用于登录。

{
"code": 0,
"message": "ok",
"data": {}
}

code: 0 表示成功,错误响应省略 data。结合 HTTP 状态与业务码判断结果。文件内容的二进制成功响应、Agent SSE 等专用协议不套用普通 JSON 处理方式。

标准列表使用 page 与 pageSize(默认 1 与 10,最大 100),返回 list、total、page、pageSize。例如:

GET /api/v1/products?page=1&pageSize=10

特定候选项接口可能使用 has_more 且不暴露总数,按该接口合同处理,不假定所有响应都有 total。

code含义常见 HTTP 状态
1000参数校验失败(也用于业务规则冲突,如删除保护、CAS 漂移)422 / 400
1001登录凭证无效(不区分账号或密码错误)401
1002未登录或令牌无效(含已注销/撤销令牌)401
1003令牌过期(含刷新窗口已过)401
1004权限不足(缺少所需权限或授权范围)403
1100审批定义无效(结构失败或发布校验不通过)422
1101审批草稿/任务/实例版本冲突409
1102同一审批 request_id 用于不同目标/动作/参数409
1103审批当前状态不允许该动作409
1104审批业务资源已变化或不满足绑定/意图约束409
1105审批引用不存在或当前不可见404
1106审批结构/值/查询预算超限422 / 413
1404文件不存在或不可见404
1409文件版本/幂等声明/引用/生命周期冲突409
1410上传任务已过期或取消410
1411文件被业务引用409
1412文件逻辑容量不足409
1413文件或总请求体超过限制413
1415文件类型不支持或内容不匹配415
1429上传并发或容量预留不足,可重试429
5000服务内部错误500
5001扩展当前不可用(稳定脱敏响应)503
5002文件内容或存储暂不可用503
5003审批能力或固定执行依赖当前不可用503

只有令牌过期的 401 + 1003 进入刷新判断,其他 401 需要重新登录。业务错误提示可展示给用户,程序分支依赖稳定错误码,不匹配中文文案。