阿里云OpenAPI
阿里云OpenAPI是云服務對外暴露的操作入口,所有形態的服務集成最終都是為了能夠成功調用OpenAPI。
什么是OpenAPI?
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、使用資源編排、使用Terraform、自行實現 HTTP 請求等。
官方推薦您使用阿里云 SDK調用 OpenAPI 。