状态码与错误
DCG API 使用的标准 HTTP 状态码,以及统一的错误响应格式。
DCG API 用标准 HTTP 状态码表达结果,错误体是统一的 JSON 结构。
状态码
| 码 | 含义 | 常见场景 |
|---|---|---|
200 | OK | 读取成功 |
201 | Created | 资源已创建(如报告) |
202 | Accepted | 异步任务已入队(如扫描) |
400 | Bad Request | 请求体校验失败 |
401 | Unauthorized | 没带 token 或 token 过期 |
403 | Forbidden | 角色无权限,或额度用满 |
404 | Not Found | 资源不存在 |
409 | Conflict | 状态冲突(如重复确认) |
错误响应
错误体遵循 FastAPI 约定:
json
{
"detail": "Datasource not found"
}校验类错误(400 / 422)的 detail 是数组,逐项指出哪个字段不合法:
json
{
"detail": [
{
"loc": ["body", "field_ids"],
"msg": "ensure this value has at most 500 items",
"type": "value_error.list.max_items"
}
]
}先看 401 还是 403
401 是"你是谁不确定"——多半 token 过期,去刷新。403 是"知道你是谁,但不让"——角色权限或许可额度问题,刷新 token 没用。