このトピックでは、OpenAPI の Remote Procedure Call (RPC) スタイルと Resource-Oriented Architecture (ROA) スタイルについて説明します。カスタムリクエストを作成する前に、呼び出すプロダクトの API スタイルを把握しておく必要があります。API スタイルによって、リクエストメソッド、リクエストヘッダー、クエリ文字列、リクエストボディの設定方法が決まります。
Alibaba Cloud プロダクトは、主に RPC と ROA の 2 つのスタイルを使用して OpenAPI を定義します。
RPCスタイル
Remote Procedure Call (RPC) は、ローカルの関数やメソッドを呼び出すのと同様に、あるプログラムが別のプログラムの関数やメソッドを呼び出すことを可能にするプロトコルです。
RPC スタイルの API では、クライアントとサーバー間の通信はリソースではなく、関数またはメソッドの呼び出しに基づいています。クライアントがサーバーにリクエストを送信する際、リソース識別子ではなく、関数またはメソッドのパラメーターを渡します。サーバーはリクエストを受信した後、指定された関数またはメソッドを実行し、その結果をクライアントに返します。
RPC スタイルの API は、GET メソッドと POST メソッドをサポートしています。
OpenAPI に RPC スタイルを使用する Alibaba Cloud プロダクトには、Elastic Compute Service (ECS)、ApsaraDB RDS、Content Delivery Network (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スタイル
Representational State Transfer (REST) は、Web サービスを設計するためのアーキテクチャスタイルです。RESTful API を使用すると、クライアントアプリケーションは HTTP リクエストを介してサーバーと対話できます。GET、POST、PUT、DELETE などの HTTP メソッドを使用して、作成、読み取り、更新、削除 (CRUD) 操作を実行します。
Resource-Oriented Architecture (ROA) は、リソースベースのアーキテクチャスタイルであり、REST の拡張です。
ROA スタイルの API は、次のメソッドをサポートしています。
GET: サーバーからリソースを取得します。通常、このメソッドはサーバー上のリソースを変更しません。
POST: データをサーバーに送信して、新しいリソースを作成したり、操作を実行したりします。
PUT: サーバー上のリソースを更新します。PUT リクエストを送信する際は、完全なリソースデータを提供する必要があります。
DELETE: サーバーからリソースを削除します。
OpenAPI に ROA スタイルを使用する Alibaba Cloud プロダクトには、Application Real-Time Monitoring Service (ARMS)、Batch Compute、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 スタイルを確認します。たとえば、Elastic Compute Service (ECS) の「API 概要」をご参照ください。