错误

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

以下部分分别描述 v2 和 v1 资源方法的错误模型。

v2资源错误模型

默认情况下,资源方法会返回 200 状态。当请求失败时,Open Cloud 返回标准错误代码。所有错误响应的格式都相同,包括:

  • code - 代表 HTTP 状态代验证码。
  • message - 一个解释错误的消息。
  • details - 包含更多与错误相关的信息的对象。
示例错误

{
"code": "INVALID_ARGUMENT",
"message": "The provided filter is invalid.",
"details": [
{
...
}
]
}

代码

下表描述了 code 的可能值。

代码HTTP 状态描述
INVALID_ARGUMENT400您传递了无效的参数,例如无效的 universeId 。您还可能缺少或无效的头部,例如 Content-LengthContent-Type
PERMISSION_DENIED403您的请求没有足够的权限或范围来执行操作。
NOT_FOUND404系统无法找到指定的资源,例如数据存储库入口。
ABORTED409操作被中止。
RESOURCE_EXHAUSTED429您没有足够的配额来执行操作,通常是因为发送了太多请求。
CANCELLED499系统终止请求,通常是由于客户端超时。
INTERNAL500内部服务器错误,通常由服务器错误引起。
NOT_IMPLEMENTED501服务器没有实现 API 方法。
UNAVAILABLE503服务不可用,通常在服务器停止运行时返回。

v1资源错误模型

所有错误响应都有相同的、标准格式,包括:

  • 一个 error 字段,这是一种高级原因,适用于所有开放云端点。
  • 一种说明性错误 message , 进一步解释错误。
  • 一个 errorDetails 对象,涵盖每个 API 特定的错误的更多信息。

要分析错误的根源,请参阅 error 字段和 errorDetails 字段的值。使用 message 字段作为错误处理的补充,因为有时它可能不会涵盖与 errorDetails 字段相同的细节水平。

示例标准数据存储错误响应

{
"error": "INVALID_ARGUMENT",
"message": "Invalid cursor.",
"errorDetails": [
{
"errorDetailType": "DatastoreErrorInfo",
"datastoreErrorCode": "InvalidCursor"
}
]
}

示例错误响应显示高级开放云 为 ,错误 为 ,特定于 数据存储 的 为 。从响应的 errordatastoreErrorCode 字段中,你可以理解到你传递了一个无效的鼠标参数,导致了错误。然后,您可以修正鼠标参数以解决问题。

所有订阅的数据存储错误响应的格式相同,包括:

示例订阅数据存储错误响应

{
"code": "INVALID_ARGUMENT",
"message": "Invalid cursor."
}

code 将包含高级错误的字符串,而 message 将包含与错误相关的特定细节

代码

参考以下表对所有高级开放云错误进行总结。

HTTP 状态代码错误描述
400无效_参数您传递了无效的参数,例如无效的 universeId 。您还可能缺少或无效的头部,例如 Content-LengthContent-Type
403不足_范围请求需要比提供的访问代币提供更高的权限。
403权限被拒绝您的请求没有足够的范围来执行操作。
404未找到系统无法找到指定的资源,例如数据存商店。
409已取消由于冲突,操作被中止了,例如发布不属于宇宙的地点。
429资源_已耗尽您没有足够的配额来执行操作,通常是因为发送了太多请求。
499已取消系统终止请求,通常是由于客户端超时。
500内部内部服务器错误。通常是服务器错误。
501未实现服务器没有实现 API 方法。
503不可用服务不可用。通常服务器已停止运行。