本文為您詳細介紹了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
GET:用於從伺服器擷取資源,一般不會對伺服器上的資源進行修改。
POST:用於將資料發送到伺服器以建立新資源,或者用於在伺服器上執行某些操作。
PUT:用於補救伺服器上的資源。用戶端在發送 PUT 請求時,需要提供完整的資源資料。
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"
}
如何查看
訪問雲產品文檔的API參考目錄,點擊查看API概覽文檔,內容包含OpenAPI採用的介面風格。
在 OpenAPI 門戶尋找對應的介面,在API調試模組,查看 SDK 範例程式碼,如果裡面涉及向
headers
寫入參數的邏輯,說明是 ROA 風格,否則是 RPC 風格。