下列部分分別描述 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 | 內部伺服器錯誤,通常是由於伺服器殺毀。 |
NOT_IMPLEMENTED | 501 系列 | 服務器沒有實現 API 方法。 |
UNAVAILABLE | 503 | 服務無法使用,通常會在服務器下線時返回。 |
v1 資源錯誤模型
所有錯誤回應都包含相同的、標準格式,包括:
- 一個 error 字段,這是一個高級原因,適用於所有開放雲端端點。
- 說明錯誤 message , 以及進一步說明錯誤。
- errorDetails 對物件,包含每個 API 的錯誤的更多信息。
要分析錯誤的根本原因,請參閱 error 字段的值和 errorDetails 字段的值。 使用 message 字段作為錯誤處理的額外,因為它可能不會覆蓋同樣的細節等級。
範例標準資料商店錯誤回應
{
"error": "INVALID_ARGUMENT",
"message": "Invalid cursor.",
"errorDetails": [
{
"errorDetailType": "DatastoreErrorInfo",
"datastoreErrorCode": "InvalidCursor"
}
]
}
示例錯誤回應顯示高級開源雲 error 作為 INVALID_ARGUMENT , 錯
所有訂購的資料儲存錯誤回應都有相同的格式,包括:
示例數據儲存錯誤回應
{
"code": "INVALID_ARGUMENT",
"message": "Invalid cursor."
}
碼ode 將包含一個高級錯誤的字串,而 message 將包含與錯誤相關的特定細節
代碼
參考以下表獲得所有高層開源錯誤的總結。
HTTP 狀態碼 | 錯誤 | 說明 |
---|---|---|
400 | 無效的參數 | 您傳送了一個無效的引數,例如一個無效的 universeId 。您可能也有缺少或無效的標題,例如 Content-Length 和 Content-Type 。 |
403 | 不足的範圍 | 請求需要比指定的資產代幣更高的權限。 |
403 | 權限_已拒絕 | 您的請求沒有足夠的範圍來執行此操作。 |
404 | 未找到 | 系統無法找到您指定的資源,例如資料存商店 商家。 |
409 | 已中斷 | 運作因沖突而中止,例如發布位置不屬於宇宙的地方。 |
429 | 資源_已滿 | 您沒有足夠的資源來執行此操作,通常是因為發送太多請求。 |
499 | 已取消 | 系統會在發生此情況通常是由於客戶端的時間延遲。 |
500 | 內部 | 內部伺服器錯誤。通常是伺服器錯誤。 |
501 系列 | 未實現 | 服務器沒有實現 API 方法。 |
503 | 無法使用 | 服務無法使用。通常伺服器正在關閉。 |