API 回應的解釋
每個 API 請求都會產生一個回應傳回給客戶端。您應該檢查回應以確定它是否成功並根據需要檢索其他資料。
HTTP 狀態碼
SnapCenter REST API 使用的 HTTP 狀態碼如下所述。
程式碼 | 描述 |
---|---|
200 |
OK 表示呼叫成功,但未建立新物件。 |
201 |
建立 物件已成功建立。回應中的位置標頭包含物件的唯一識別碼。 |
202 |
已接受 後台作業已啟動以執行請求,但尚未完成。 |
400 |
錯誤請求 請求輸入無法辨識或不合適。 |
401 |
未經授權的使用者身份驗證失敗。 |
403 |
由於授權(RBAC)錯誤,禁止存取被拒絕。 |
404 |
未找到請求中引用的資源不存在。 |
405 |
方法不允許 此資源不支援請求中的 HTTP 方法。 |
409 |
衝突 嘗試建立物件失敗,因為必須先建立不同的物件或要求的物件已存在。 |
500 |
內部錯誤 伺服器發生一般內部錯誤。 |
響應標頭
SnapCenter產生的 HTTP 回應中包含幾個標頭。
地點
當建立一個物件時,位置標頭包含新物件的完整 URL,其中包括指派給該物件的唯一識別碼。
內容類型
這通常是 application/json
。
回應正文
API 請求產生的回應主體的內容會因物件、處理類型以及請求的成功或失敗而有所不同。回應始終以 JSON 形式呈現。
單一對象
根據請求,可以傳回帶有一組欄位的單一物件。例如,您可以使用 GET 操作,透過唯一識別碼檢索叢集的選定屬性。
多個物件
可以傳回資源集合中的多個物件。在所有情況下,都使用一致的格式, `num_records`指示記錄數以及包含物件實例陣列的記錄。例如,您可以檢索特定叢集中定義的節點。
作業對象
如果非同步處理 API 調用,則會傳回一個 Job 物件來錨定後台任務。例如,用於更新叢集配置的PATCH請求是非同步處理的,並傳回一個Job物件。
錯誤對象
如果發生錯誤,則始終傳回 Error 物件。例如,當您嘗試變更未為叢集定義的欄位時,您將收到錯誤。
空的
在某些情況下,不會傳回任何數據,且回應主體包含一個空的 JSON 物件。
錯誤
如果發生錯誤,則會在回應主體中傳回錯誤物件。
格式
錯誤物件具有以下格式:
"error": { "message": "<string>", "code": <integer>[, "target": "<string>"] }
您可以使用代碼值來確定一般錯誤類型或類別,並使用訊息來確定特定錯誤。當可用時,目標欄位包括與錯誤相關的特定使用者輸入。
常見錯誤代碼
常見錯誤代碼如下表所示。特定的 API 呼叫可能包含額外的錯誤代碼。
程式碼 | 描述 |
---|---|
409 |
具有相同標識符的物件已存在。 |
400 |
欄位的值無效或缺失,或提供了額外的欄位。 |
400 |
不支援該操作。 |
405 |
找不到具有指定標識符的物件。 |
403 |
執行請求的權限被拒絕。 |
409 |
資源正在使用中。 |