全部產品
Search
文件中心

Alibaba Cloud SDK:OpenAPI 風格

更新時間:Jul 01, 2024

本文為您詳細介紹了OpenAPI的RPC風格和ROA風格,在自訂請求體之前,您必須提前知曉要調用的產品介面風格,它決定了如何構造請求體的要求方法(RequestMethod)、要求標頭(RequestHeader)、請求查詢字串(RequestQueryString)、請求本文(RequestPayload)應該如何設定。

阿里雲產品主要使用兩種風格定義 OpenAPI :RPC 和 ROA。

RPC風格

RPC(Remote Procedure Call)是一種協議,它允許一個程式調用另一個程式中的函數或方法,就像調用本地函數或方法一樣。

RPC風格的介面,用戶端和伺服器之間的通訊是基於函數或方法調用的,而不是基於資源的。用戶端向伺服器發出請求時,它傳遞的是函數或方法的參數,而不是資源的標識符。伺服器收到請求後,它執行請求中指定的函數或方法,並將結果返回給用戶端。

RPC 風格介面允許的 Method:GET/POST。

OpenAPI 為RPC風格的產品:彈性計算服務ECS,關係型資料庫RDS,內容分發CDN等。

樣本:

http://ecs.aliyuncs.com/?SignatureVersion=1.0&Action=DescribeDedicatedHosts&Format=XML&SignatureNonce=3ee8c1b8-xxxx-xxxx-xxxx-xxxxxxxxx&Version=2014-05-26&AccessKeyId=testid&Signature=OLeaidS1JvxuMvnyHOwuJ%2BuX5qY%3D&SignatureMethod=HMAC-SHA1&Timestamp=2016-02-23T12%3A46%3A24Z&RegionId=cn-hangzhou&Status=Available

ROA風格

REST(Representational State Transfer)是一種架構風格,用於設計 Web 服務。RESTful API 可以讓用戶端應用通過 HTTP 要求與伺服器進行互動,並使用 HTTP 方法(例如 GET、POST、PUT、DELETE)執行 CRUD 操作(建立、讀取、更新、刪除)。

ROA(Resource-Oriented Architecture)是一種基於資源的架構風格,它是 REST 風格的一種擴充。

ROA風格的介面允許的Method

  1. GET:用於從伺服器擷取資源,一般不會對伺服器上的資源進行修改。

  2. POST:用於將資料發送到伺服器以建立新資源,或者用於在伺服器上執行某些操作。

  3. PUT:用於補救伺服器上的資源。用戶端在發送 PUT 請求時,需要提供完整的資源資料。

  4. DELETE:用於從伺服器上刪除資源。

OpenAPI 為ROA風格的產品:Application Real-Time Monitoring Service,批次運算,Container Service,Elasticsearch等。

POST /clusters/test_cluster_id/triggers HTTP/1.1
{
  "x-acs-action":"CreateTrigger",
  "x-acs-version":"2015-12-15",
  "Accept":"application/json",
  "Authorization": "acs testid:D9uFJAJgLL+dryjBfQK+YeqGtoY=",
  "x-acs-signature-nonce":"15215528852396",
  "Date":"Tue 9 Apr 2022 07:35:29 GMT",
  "x-acs-signature-method":"HMAC-SHA1",
  "Content-MD5":"Gtl/0jNYHf8t9Lq8Xlpaqw=="
  "Host":"cs.aliyuncs.com" 
}
{
 	"cluster_id":"test_cluster_id",
 	"project_id":"default/nginx-test",
 	"action":"redeploy",
 	"type":"deployment"
}

如何查看

  1. 訪問雲產品文檔的API參考目錄,點擊查看API概覽文檔,內容包含OpenAPI採用的介面風格。

  2. OpenAPI 門戶尋找對應的介面,在API調試模組,查看 SDK 範例程式碼,如果裡面涉及向headers寫入參數的邏輯,說明是 ROA 風格,否則是 RPC 風格。