解讀API回應
每個API要求都會對用戶端產生回應。您應該檢查回應、判斷回應是否成功、並視需要擷取其他資料。
HTTP狀態代碼
以下說明了由靜止API使用的HTTP狀態代碼ONTAP 。
程式碼 | 原因詞彙 | 說明 |
---|---|---|
200 |
好的 |
表示未建立新物件的通話成功。 |
201. |
已建立 |
已成功建立物件。回應中的位置標頭包含物件的唯一識別碼。 |
202.02 |
已接受 |
已開始執行要求的背景工作、但尚未完成。 |
400 |
錯誤要求 |
無法辨識或不適當的要求輸入。 |
401. |
未獲授權 |
使用者驗證失敗。 |
403. |
禁止 |
由於授權錯誤、存取遭拒。 |
404.. |
找不到 |
要求中提及的資源不存在。 |
405 |
不允許使用方法 |
資源不支援要求中的HTTP方法。 |
409. |
衝突 |
建立物件的嘗試失敗、因為必須先建立不同的物件、或要求的物件已經存在。 |
500 |
內部錯誤 |
伺服器發生一般內部錯誤。 |
回應標頭
許多標頭都包含在ONTAP 由該功能產生的HTTP回應中。
- 位置
-
建立物件時、位置標頭會包含新物件的完整URL、包括指派給物件的唯一識別碼。
- 內容類型
-
這通常是「application/hal+json」。
回應本文
API要求所產生的回應本文內容、會因物件、處理類型、以及要求的成功或失敗而有所不同。回應一律以Json呈現。
-
單一物件
單一物件可根據要求傳回一組欄位。例如、您可以使用「Get」(取得)、使用唯一識別碼擷取叢集的選定內容。
-
多個物件
可從資源集合傳回多個物件。在所有情況下、都會使用一致的格式、其中「nm_Records」表示包含物件執行個體陣列的記錄和記錄數目。例如、您可以擷取在特定叢集中定義的節點。
-
工作物件
如果API呼叫以非同步方式處理、則會傳回工作物件、以固定背景工作。例如、用於更新叢集組態的修補程式要求會以非同步方式處理、並傳回工作物件。
-
錯誤物件
如果發生錯誤、一律會傳回錯誤物件。例如、當您嘗試變更未為叢集定義的欄位時、會收到錯誤訊息。
-
清空Json物件
在某些情況下、不會傳回任何資料、而且回應本文包含空白的Json物件。
HAL連結
支援HyperMedia做為應用程式狀態引擎(HATEOAS)的機制是使用HAL。ONTAP當傳回識別特定資源的物件或屬性時、也會隨附一個由Hal-encoded編碼的連結、讓您輕鬆找到並判斷有關資源的其他詳細資料。
錯誤
如果發生錯誤、回應本文會傳回錯誤物件。
- 格式
-
錯誤物件的格式如下:
"error": { "message": "<string>", "code": <integer>[, "target": "<string>"] }
您可以使用程式碼值來判斷一般錯誤類型或類別、以及判斷特定錯誤的訊息。如果可用、目標欄位會包含與錯誤相關的特定使用者輸入。
- 常見錯誤代碼
-
下表說明常見的錯誤代碼。特定API呼叫可能包含其他錯誤代碼。
程式碼 說明 1.
409.
具有相同識別碼的物件已存在。
2.
400
欄位的值有無效值或遺失、或是提供額外欄位。
3.
400
不支援此作業。
4.
405
找不到具有指定識別碼的物件。
6.
403.
拒絕執行要求的權限。
8.
409.
資源正在使用中。