阿里雲OpenAPI是雲端服務對外暴露的操作入口,所有形態的服務整合最終都是為了能夠成功調用OpenAPI。
什麼是OpenAPI?
API(API)是一種允許應用程式之間相互連信的標準介面。API 允許開發人員在多個不同的應用程式之間共用資料、功能和服務,使開發人員更容易地實現串連兩個應用程式之間的功能,也使開發人員可以更輕鬆地開發和擴充應用程式。
OpenAPI是阿里雲官方推出的API,旨在為開發人員提供一種安全、穩定、高效的方式來整合阿里雲,包括雲端服務器、資料庫、儲存、訊息佇列、安全服務等。
OpenAPI遵循阿里雲的規範,提供了豐富的介面定義,包括介面名稱、出入參數定義、錯誤碼、Endpoint等。同時,OpenAPI還提供多種程式設計語言和開發架構的SDK,方便開發人員快速構建與阿里雲相關的應用程式,包括Java、Python、Node.js、Go等。通過API介面擷取資料、控制伺服器、系統管理權限等,實現對阿里雲資源的全面控制和管理。
調用 OpenAPI
作為開發人員,調用一個 API 介面,我們通常需要關注以下重點資訊:
調用地址(網關)
是否需要登入
是否需要授權
調用方式
返回結果
調用阿里雲 OpenAPI 亦是如此。下圖是使用者從用戶端發起一個 OpenAPI 調用請求到接收來自阿里雲服務響應資料的完整時序圖。
使用者發起HTTP請求,調用商務服務端提供的介面。例如:該指令為查詢某個ECS的執行個體狀態。
商務服務端接收到使用者從業務用戶端的請求,校正介面參數合法性,根據 OpenAPI 介面文檔組織請求參數、並對請求進行簽名。
說明如果使用阿里雲 SDK 調用 OpenAPI ,則無需對請求進行簽名,SDK 內部已封裝請求籤名邏輯。
商務服務端發起請求訪問 OpenAPI 網關的服務存取點。
OpenAPI 網關接收到商務服務端請求,校正簽名和合法性,解析調用身份,並進行鑒權。
鑒權通過後,將該請求轉寄到對應雲產品的內部服務地址。
雲產品接收到來自網關的轉寄請求,根據請求指令操作具體的雲資源,返回執行結果。
OpenAPI 網關接收到來自雲產品的返回資料,並進行標準輸出格式轉換,返回給商務服務端。
商務服務端接收到 OpenAPI 網關的返回資料,對結果進行處理,並將結果返回給業務用戶端。
基本概念
服務存取點
服務存取點(Endpoint)是指用戶端可以使用的雲產品在網關註冊的服務地址。服務存取點通常是一個 URL,它指定了服務的訪問協議、主機名稱、連接埠和路徑等資訊,用戶端可以使用這些資訊與雲端服務進行通訊。
身份、憑據、鑒權
阿里雲的 OpenAPI 分為兩種:
匿名 OpenAPI ,對於匿名 OpenAPI ,不需要額外的認證流程,只要請求是符合 OpenAPI 的風格,則可以順利調用。
需要身份認證的 OpenAPI ,對於需要身份認證的 OpenAPI ,網關需要識別請求憑證,確認調用發起人的身份,身份通過許可權校正後,才會將請求轉寄到對應雲端服務,否則會直接拒接該請求。
調用方式
為了更好的支援開發人員,阿里雲提供多種方式調用 OpenAPI ,主要的方式有:使用阿里雲控制台,整合阿里雲 SDK、使用阿里雲 CLI、使用Resource Orchestration Service、使用Terraform、自行實現 HTTP 要求等。
官方推薦您使用阿里雲 SDK調用 OpenAPI 。