Skip to main content

HTTP 错误码与响应体

MimirQ API 遵循标准 HTTP 状态码语义,错误响应包含结构化的错误信息,便于客户端分类处理。

错误响应格式

{
"detail": "Dataset not found",
"code": "RESOURCE_NOT_FOUND",
"request_id": "req-abc-123"
}
info

具体字段名以 RedocErrorResponse schema 为准。部分接口可能包含额外的 fielderrors 数组字段。

错误码速查表

4xx 客户端错误

状态码含义常见原因客户端动作
400Bad Request请求格式错误、字段缺失检查请求体与 Content-Type
401UnauthorizedToken 缺失或过期刷新 Token 或重新登录
403Forbidden权限不足、功能未授权确认角色与 ACL 配置
404Not Found资源不存在或不可见核对 ID 与租户上下文
409Conflict并发更新、唯一约束冲突重新获取资源后重试
413Payload Too Large上传文件超过限制压缩文件或调整限制
415Unsupported Media Type文件格式不支持确认 MIME 类型
422Unprocessable EntityPydantic 校验失败对照 Redoc 检查字段名与类型
429Too Many Requests触发限流指数退避重试

5xx 服务端错误

状态码含义常见原因客户端动作
500Internal Server Error应用异常记录 request_id 并反馈
502Bad Gateway代理后端不可达检查服务部署状态
503Service Unavailable服务过载或依赖不可用退避重试,检查健康探针

错误处理策略

重试决策

状态码是否重试策略
401刷新 Token 后重试一次刷新失败则停止
409获取最新状态后重试仅限幂等操作
429指数退避 + 抖动
500谨慎重试非幂等操作不重试
502/503指数退避,最多 3 次
warning

非幂等的 POST 请求(如创建数据集、上传文档),收到 5xx 后盲目重试可能导致重复资源。确认支持幂等键或接受重复后再重试。参见 重试与幂等

前端错误处理建议

  • 对高频错误(401、422)提供用户可理解的反馈
  • 响应中包含 request_id 时,在错误提示中展示(便于后端定位)
  • 未知错误码不应静默吞掉,至少记录到控制台

相关链接