常见错误代码
在错误情况下,我们需要处理两方面内容。一方面是供人工解读,另一方面是供 API 使用者(机器)解释并采取适当行动。对人工来说,可以返回一条适当的可读错误信息。对机器来说,根据状态码和导致错误的“字段”,它可以高亮显示 UI 中的相关内容或执行其他操作。
批量 API 错误响应示例
| 错误场景 | 代码 | HTTP 代码 | 响应示例(response_status 对象内容) |
| 输入的 Id 或名称不存在、不被使用或用户无权设置该值 | 4001 | 400 | { |
| 禁止 / 用户无权执行该操作 | 4002 | 403 | { |
| 关闭规则违反 | 4003 | 400 | { |
| 内部错误(无法向用户发送具体错误,如某些异常) | 4004 | 500 | { |
| 引用存在。(无法删除实体,因为它被其他模块使用中) | 4005 | 400 | { |
| 无效的 URL 或资源未找到,例如 /requests/10 ,且 id 为 10 的请求未找到 | 4007 | 404 | { |
| 不唯一 | 4008 | 400 | { |
| 尝试编辑不可编辑字段(某些字段可在添加时赋值,但不可编辑,例如 status in_progress) | 4009 | 400 | { |
| 尝试编辑内部字段 | 4010 | 400 | { |
| 没有此字段 | 4011 | 400 | { |
| 未提供必填字段的值 | 4012 | 400 | { |
| 不支持的内容类型 | 4013 | 415 | { |
| 尝试编辑只读字段 | 4014 | 400 | { |
| 达到 API 速率限制 | 4015 | 400 | { |
| 已在回收站中 | 4016 | 400 | { |
| 不在回收站中 | 4017 | 400 | { |
| 当前许可证不允许 | 7001 | 400 | { |