このトピックでは、API操作のリモートプロシージャコール(RPC)スタイルとリソース指向アーキテクチャ(ROA)スタイルについて説明します。Alibaba Cloud API操作を呼び出すリクエストを作成する前に、アクセスするサービスのAPIスタイルを確認する必要があります。APIスタイルによって、使用できるリクエストメソッドと、リクエストヘッダー、クエリ文字列、およびリクエストボディの作成方法が決まります。
Alibaba Cloud サービスの API スタイルは、RPCとROAです。
RPCスタイル
RPCは、あるプログラムが別のプログラムの関数またはメソッドをローカルであるかのように呼び出すことができるプロトコルです。
RPCスタイルのAPI呼び出しでは、クライアントとサーバーは、リソース操作ではなく、関数またはメソッドの呼び出しに基づいて相互に通信します。クライアントがサーバーにリクエストを送信すると、クライアントはリソースの識別子ではなく、関数またはメソッドのパラメーターを渡します。サーバーはリクエストを受信した後、指定された関数またはメソッドを実行し、結果を返します。
RPC APIでサポートされているメソッドには、GETとPOSTが含まれます。
RPCスタイルで API を提供する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)操作を実行できます。
ROAは、リソース指向のアーキテクチャスタイルであり、RESTスタイルの拡張です。
ROA APIでサポートされているメソッドは次のとおりです。
GET:サーバーからリソースを取得し、サーバー上のリソースを変更しません。
POST:サーバーにデータを送信してリソースを作成したり、リソースに対して操作を実行したりします。
PUT:サーバー上のリソースを更新します。クライアントがPUTリクエストを送信する場合、クライアントは完全なリソースデータを提供する必要があります。
DELETE:サーバーからリソースを削除します。
ROAスタイルで API を提供するAlibaba Cloudサービスには、Application Real-Time Monitoring Service(ARMS)、Batch Compute、Container Service for Kubernetes(ACK)、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スタイルは、サービスの [APIリファレンス] の [機能別操作リスト] トピックで確認できます。
OpenAPI Explorer でクラウドサービスのAPIを検索します。[APIデバッグ] モジュールで、SDKサンプルコードを確認します。サンプルコードに
headers
へのパラメーターの書き込みが含まれている場合、APIはROAスタイルです。それ以外の場合、APIはRPCスタイルです。