错误码结构说明#
错误码由code
reason
message
meta
四部分组成:名称 | 类型 | 说明 |
---|
code | int | 目前和 http 状态码保持一致,后续有必要的话,可能会变更为具体的 errcode |
reason | string | 表示错误原因 |
message | string | 表示更详细的错误信息,用来做原因分析与问题排查 |
meta | map<string>string | 在一些场景中,用来表示附加信息 |
{
"code": 404,
"reason": "NOT_FOUND",
"message": "biz [NoteUsecase.preEdit]: note not found. note_id=XXX",
"metadata": {}
}
API 对接开发时,建议使用 reason
字段来做错误适配
常见的错误列表#
Reason | HTTP 状态码 | 说明 |
---|
LOGIN | 400 | 需要登录,在 OpenAPI 的场景中,通常是缺少 API-KEY 或者 无法正确解析出请求者身份 |
PARAMS | 400 | 参数错误,详细信息需要参考 message |
PERM | 403 | 权限错误,譬如尝试编辑了不属于自己的笔记 |
NOT_FOUND | 404 | 资源未找到,可以是用户未找到,也可以是笔记未找到,详细信息需要参考 message |
RATELIMIT | 429 | 请求被限频 |
RISKY | 403 | 有风险的请求 |
BLOCKED | 403 | 账户或请求被封禁 |
Quota | 403 | 配额不足 |
Reason | | 说明 |
---|
OPEN_API_NOTE_EMPTY | 400 | 尝试创建空笔记 |
OPEN_API_NOTE_CHAR_COUNT_MAX | 400 | 笔记字数超限 |