索引
BadRequest(訊息)BadRequest.FieldViolation(訊息)Code(enum)LocalizedMessage(訊息)Status(訊息)
BadRequest
說明用戶端要求中的違規事項。這類錯誤著重於要求的語法層面。
| 欄位 | |
|---|---|
field_violations[] |
說明用戶端要求中的所有違規事項。 |
FieldViolation
用於說明單一錯誤要求欄位的訊息類型。
| 欄位 | |
|---|---|
field |
路徑會導向要求主體中的欄位。這個值會是以半形句號分隔的 ID 序列,用於識別通訊協定緩衝區欄位。 請考量下列事項: 在這個範例中,proto
在 JSON 中,相同的值會表示為:
|
description |
說明要求元素為何不佳。 |
reason |
欄位層級錯誤的原因。這是常數值,用於識別欄位層級錯誤的近因。在 google.rpc.ErrorInfo.domain 的範圍內,這項值應可唯一識別 FieldViolation 的類型。長度不得超過 63 個字元,且必須符合 |
localized_message |
針對欄位層級錯誤提供本地化錯誤訊息,可安全地傳回給 API 消費者。 |
程式碼
gRPC API 的標準錯誤代碼。
有時可能適用多個錯誤代碼。服務應傳回最適用的特定錯誤代碼。例如,如果 OUT_OF_RANGE 與 FAILED_PRECONDITION 代碼都適用,則最好使用前者。同樣地,NOT_FOUND 或 ALREADY_EXISTS 的使用順序應高於 FAILED_PRECONDITION。
| 列舉 | |
|---|---|
OK |
非錯誤;於成功時傳回。 HTTP 對應:200 OK |
CANCELLED |
作業已取消,一般由呼叫者取消。 HTTP 對應:499 用戶端已關閉要求 |
UNKNOWN |
發生不明錯誤,舉例來說,當從其他位址空間收到的 HTTP 對應:500 內部伺服器錯誤 |
INVALID_ARGUMENT |
用戶端指定了無效的引數。請注意,這與 HTTP 對應:400 錯誤的要求 |
DEADLINE_EXCEEDED |
期限於作業完成之前過期。針對變更系統狀態的作業,即使作業已成功完成,也可能傳回此錯誤。例如,來自伺服器的成功回應延遲時間可能已長到足以使期限過期。 HTTP 對應:504 閘道逾時 |
NOT_FOUND |
找不到某些要求的實體 (例如檔案或目錄)。 伺服器開發人員注意事項:如果系統拒絕整類使用者 (例如逐步推出功能或未記錄的允許清單) 的要求,可以使用 HTTP 對應:404 找不到 |
ALREADY_EXISTS |
用戶端嘗試建立的實體 (例如檔案或目錄) 已存在。 HTTP 對應:409 衝突 |
PERMISSION_DENIED |
呼叫者沒有執行指定作業的權限。不得針對因耗用某些資源所導致的拒絕情形使用 HTTP 對應:403 禁止 |
UNAUTHENTICATED |
要求沒有作業的有效驗證憑證。 HTTP 對應:401 未授權 |
RESOURCE_EXHAUSTED |
已耗盡某些資源,或許是每位使用者的配額,或許是完整檔案系統空間不足。 HTTP 對應:429 太多要求 |
FAILED_PRECONDITION |
作業已遭拒絕,因為系統不在執行作業所需的狀態下。例如,要刪除的目錄還有內容、rmdir 作業套用至非目錄等。 服務實作者可以根據下列準則,決定要使用 HTTP 對應:400 錯誤的要求 |
ABORTED |
作業已取消,通常是因為例如順序器檢查失敗或交易已取消等並行問題所導致。 如要決定採用 HTTP 對應:409 衝突 |
OUT_OF_RANGE |
嘗試作業時超過有效範圍,例如搜尋或讀取超過檔案結尾。 與
HTTP 對應:400 錯誤的要求 |
UNIMPLEMENTED |
未實作作業或作業在此服務中不受支援/未啟用。 HTTP 對應:501 未實作 |
INTERNAL |
內部錯誤。這表示基礎系統預期的某些不變的情形已被打破。此錯誤代碼保留供嚴重錯誤使用。 HTTP 對應:500 內部伺服器錯誤 |
UNAVAILABLE |
服務目前無法使用。這很可能是暫時性問題,可透過重試輪詢來解決。請注意,重試非等冪作業並不一定安全。 如要決定採用 HTTP 對應:503 服務不可用 |
DATA_LOSS |
無法復原的資料遺失或損毀。 HTTP 對應:500 內部伺服器錯誤 |
LocalizedMessage
提供可安全傳回給使用者的本地化錯誤訊息,並附加至 RPC 錯誤。
| 欄位 | |
|---|---|
locale |
使用的語言代碼遵循 https://www.rfc-editor.org/rfc/bcp/bcp47.txt 中定義的規格。例如:「en-US」、「fr-CH」、「es-MX」 |
message |
上述語言代碼的本地化錯誤訊息。 |
狀態
Status 類型會定義適用於不同程式設計環境 (包含 REST API 和遠端程序呼叫 (RPC) API) 的邏輯錯誤模型。gRPC 會使用這個模型。每個 Status 訊息包含三部分的資料:錯誤代碼、錯誤訊息和錯誤詳細資料。
如要進一步瞭解這個錯誤模型,以及如何使用這個錯誤模型,請參閱 API 設計指南。
| 欄位 | |
|---|---|
code |
狀態碼,應為 |
message |
向開發人員顯示的錯誤訊息,應以英文呈現。所有向使用者顯示的錯誤訊息都應經過本地化,並透過 |
details[] |
包含錯誤詳細資料的訊息清單。這是供 API 使用的一組常用訊息類型。 |