Skip to main content
E-Series Systems
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

API基礎知識

貢獻者

在Web Services API中、HTTP通訊涉及要求回應週期。

要求中的URL元素

無論使用何種程式設計語言或工具、對Web服務API的每個呼叫都有類似的結構、包含URL、HTTP動詞和Accept標頭。

Web 服務 API 呼叫圖表

所有要求都包含URL、如下例所示、並包含表格中所述的元素。

區域 說明

HTTP傳輸

「https://」

Web服務Proxy可啟用HTTP或HTTPS。

基於安全考量、內嵌式Web服務需要HTTPS。

基礎URL和連接埠

webservices.name.com:8443`

每個要求都必須正確路由傳送至作用中的Web服務執行個體。需要FQDN(完整網域名稱)或執行個體的IP位址、以及聆聽連接埠。根據預設、Web Services會透過連接埠8080(用於HTTP)和連接埠8443(用於HTTPS)進行通訊。

對於Web服務Proxy、兩個連接埠都可以在Proxy安裝期間或wsconfig.xml檔案中變更。在執行各種管理應用程式的資料中心主機上、連接埠爭用很常見。

對於內嵌式Web服務、控制器上的連接埠無法變更;安全連線的連接埠預設為連接埠8443。

API路徑

「Devmgr/v2/storage系統」

會要求Web Services API中的特定REST資源或端點。大多數端點的形式如下:

「Devmgr/v2/<資源>/[id]」

API路徑包含三個部分:

  • 「Devmgr"(裝置管理員)是Web Services API的命名空間。

  • 「v2」代表您正在存取的API版本。您也可以使用「utils」存取登入端點。

  • 「系統」是文件中的一項類別。

支援的HTTP verb

支援的HTTP verb包括GET、POST及DELETE:

  • 「Get要求」用於唯讀要求。

  • POST要求用於建立和更新物件、以及可能會影響安全性的讀取要求。

  • 刪除要求通常用於從管理中移除物件、完全移除物件、或是重設物件的狀態。

註 目前、Web Services API不支援PUT或修補程式。您可以改用POST來提供這些動詞的典型功能。

接受標頭

傳回要求本文時、Web Services會以Json格式傳回資料(除非另有指定)。某些用戶端預設要求「'text/html」或類似的內容。在這些情況下、API會以HTTP代碼406回應、表示無法以這種格式提供資料。最佳實務做法是針對您預期Json為回應類型的任何情況、將Accept標頭定義為「application/json」。在未傳回回應本文的其他情況下(例如刪除)、提供Accept標頭不會造成任何非預期的影響。

回應

向API提出要求時、回應會傳回兩項重要資訊:

  • HTTP狀態代碼-指出要求是否成功。

  • 可選的回應本文-通常提供代表資源狀態的Json實體或實體、以提供更多故障性質的詳細資料。

您必須檢查狀態代碼和內容類型標頭、以判斷所產生的回應本文的外觀。對於HTTP狀態代碼200-203-4222、Web服務會傳回回應的Json實體。對於其他HTTP狀態代碼、Web Services通常不會傳回額外的Json實體、因為規格不允許(204)、或是狀態是自我說明。下表列出常見的HTTP狀態代碼和定義。它也會指出是否傳回Json實體中與每個HTTP程式碼相關的資訊。

HTTP狀態代碼 說明 Json本文

200正常

表示回應成功。

是的

201已建立

表示已建立物件。此程式碼僅用於少數罕見的情況、而非200個狀態。

是的

已接受202

表示已接受要求以非同步要求的形式處理、但您必須提出後續要求才能取得實際結果。

是的

203非權威資訊

類似於200個回應、但Web Services無法保證資料是最新的(例如、目前只有快取資料可用)。

是的

204無內容

表示作業成功、但沒有回應實體。

400個錯誤要求

表示要求中提供的Json實體無效。

401未獲授權

表示發生驗證失敗。未提供任何認證、或使用者名稱或密碼無效。

403禁止

授權失敗、表示已驗證的使用者無權存取要求的端點。

找不到404

表示無法找到所要求的資源。此程式碼適用於不存在的API或識別碼所要求的不存在資源。

無法處理的實體

表示要求通常格式良好、但輸入參數無效、或儲存系統的狀態不允許Web Services滿足要求。

是的

424失敗相依性

用於Web服務Proxy、表示所要求的儲存系統目前無法存取。因此、Web服務無法滿足要求。

429太多要求

表示已超過要求上限、應於稍後重試。

範例指令碼

GitHub包含一個儲存庫、可用來收集和組織範例指令碼、說明如何使用NetApp SANtricity Web Services API。若要存取儲存庫、請參閱 "NetApp Webservices範例"