下面的部分分别描述了 v2 和 v1 资源方法的错误模型。
v2 资源错误模型
默认情况下,资源方法回应为 200 状态。 当请求失败时,Open Cloud 返回标准错误代码。 所有错误回应都有相同的格式,包括:
- code - 代表 HTTP 状态代验证码。
- message - 一个解释错误的消息。
- details - 一个包含更多信息的对象。
示例错误
{
"code": "INVALID_ARGUMENT",
"message": "The provided filter is invalid.",
"details": [
{
...
}
]
}
代码
下表描述可能为 code 的值。
代码 | HTTP状态 | 描述 |
---|---|---|
INVALID_ARGUMENT | 400 | 您通过了一个无效的参数,例如一个无效的 universeId 。您可能还有一个或无效的头谱,例如 Content-Length 和 Content-Type 。 |
PERMISSION_DENIED | 403 | 您的请求没有足够的权限或范围来执行此操作。 |
NOT_FOUND | 404 | 系统无法找到您指定的资源,例如数据存储存入。 |
ABORTED | 409 | 操作已中止。 |
RESOURCE_EXHAUSTED | 429 | 您没有足够的权限来执行此操作,通常是因为发送太多请求。 |
CANCELLED | 499 | 系统终止请求,通常是由客户端时间超出导致。 |
INTERNAL | 500 | 内部服务器错误,通常是由服务器 bug 导致。 |
NOT_IMPLEMENTED | 501 | 服务器不实现 API 方法。 |
UNAVAILABLE | 503 | 服务无可用,通常在服务器下降时返回。 |
v1 资源错误模型
所有错误的回应都有一个统一的格式,其中包括:
- 一个 error 字段,这是所有 Open Cloud 端点的高级原因。
- 一个说明错误 message ,这进一步解释了错误。
- 一个 errorDetails 对象,包含更多与每个 API 相关的错误信息。
要分析错误的根本原因,请参阅 error 字段的值和 errorDetails 字段。 使用 message 字段作为错误处理的补充,因为有时它可能不会覆盖同一级别的细节如 2>ErrorDetails2> 字段。
示例标准数据商店错误响应
{
"error": "INVALID_ARGUMENT",
"message": "Invalid cursor.",
"errorDetails": [
{
"errorDetailType": "DatastoreErrorInfo",
"datastoreErrorCode": "InvalidCursor"
}
]
}
示例错误响应显示高级开云error为INVALID_ARGUMENT,错误
所有订购的数据存储错误答复的格式都一样,包括:
示例订购数据存储错误
{
"code": "INVALID_ARGUMENT",
"message": "Invalid cursor."
}
验证码ode 将包含高级错误的一组字符串,而 message 将包含与错误相关的特定细节
代码
参阅以下表,获得所有高级 Open Cloud 错误的概要。
HTTP状态代码 | 错误 | 描述 |
---|---|---|
400 | 无效的参数 | 您通过了一个无效的参数,例如一个无效的 universeId 。您可能还有一个或无效的头谱,例如 Content-Length 和 Content-Type 。 |
403 | 不足的范围 | 请求需要比提供的访问代币更高的权限。 |
403 | 权限被拒绝 | 您的请求没有足够的范围来执行此操作。 |
404 | 未找到 | 系统无法找到您指定的资源,例如数据存商店。 |
409 | 已中止 | 操作因冲突而中止,例如发布不是宇宙的地方。 |
429 | 资源_已耗尽 | 您没有足够的权限来执行此操作,通常是因为发送太多请求。 |
499 | 已取消 | 系统终止请求,通常是由客户端时间超出导致。 |
500 | 内部 | 内部服务器错误。通常是服务器问题。 |
501 | 未实现 | 服务器不实现 API 方法。 |
503 | 不可用 | 服务不可用。通常服务器已关闭。 |