For AI agents: the complete documentation index is available at https://payhon.github.io/AppKernia/llms.txt, the full documentation bundle is available at https://payhon.github.io/AppKernia/llms-full.txt, and this page is available as Markdown at https://payhon.github.io/AppKernia/api/conventions.md.

响应、错误与幂等

成功响应

{
  "code": "OK",
  "message": "success",
  "data": {},
  "request_id": "01900000-0000-7000-8000-000000000001"
}

request_id 应贯穿客户端错误上报、服务端日志和审计排障。

错误响应

{
  "error": {
    "code": "IAM.AUTH.INVALID_CREDENTIALS",
    "message_key": "errors.iam.auth.invalid_credentials",
    "message": "账号或密码错误",
    "details": {}
  },
  "request_id": "01900000-0000-7000-8000-000000000001"
}

客户端只根据稳定 error.codemessage_key 判断业务,不解析 message。常用 HTTP 状态:

状态含义客户端行为
400请求格式错误修正请求
401会话无效或 Access Token 过期single-flight Refresh 一次
403身份有效但无权限不 Refresh,展示无权限
404资源不存在或不可见不推断其他租户资源是否存在
409版本/状态冲突重新加载并显式解决
422字段校验失败映射到本地表单字段
429请求过多尊重 Retry-After

语言协商

请求使用 Accept-Language: zh-CNen-US,响应使用 Content-Language。错误码与原始数据不随语言改变。

分页

Admin 资源常用 page / page_size,移动消息和文章使用 opaque cursor。客户端不得解析 cursor 内容,也不能在同一资源上擅自混用分页模式。

幂等与重试

GET / HEAD 可以在网络中断后有限退避;POST / PATCH / DELETE 默认不重试。只有 OpenAPI 明确支持 Idempotency-Key 的写操作才可安全重放:

Idempotency-Key: 01900000-0000-7000-8000-000000000001