API Gateway を使用すると、他の Alibaba Cloud ユーザーやサードパーティのサービスプロバイダーが提供する API サービスを呼び出すことができます。また、API Gateway はさまざまな管理サービスやサポートサービスも提供します。
API の呼び出し
API Gateway コンソールで提供されている多言語 SDK を使用して API を呼び出すことができます (SDK とドキュメントのダウンロード)。また、独自の HTTP または HTTPS リクエストを作成して API を呼び出すこともできます。
以降のセクションでは、API の呼び出しについて説明し、例を示します:
リクエスト
リクエスト URL は、ドメイン名とパスで構成されます。
API グループにバインドされたドメイン名を使用します。ドメイン名がグループにバインドされていない場合は、グループのセカンドレベルドメインを使用します。
http://e710888d3ccb4638a723ff8d03837095-cn-qingdao.aliapi.com/demo/postリクエストメソッド:
POSTリクエストボディ:
FormParam1=FormParamValue1&FormParam2=FormParamValue2 # HTTP リクエストボディリクエストヘッダー:
Host: e710888d3ccb4638a723ff8d03837095-cn-qingdao.aliapi.com Date: Mon, 22 Aug 2016 11:21:04 GMT User-Agent: Apache-HttpClient/4.1.2 (java 1.6) Content-Type: application/x-www-form-urlencoded; charset=UTF-8 # リクエストボディのタイプ。リクエストボディの実際の内容に基づいて設定します。 Accept: application/json # レスポンスボディのタイプ。一部の API は、指定されたレスポンスタイプに基づいて特定の形式でデータを返します。このリクエストヘッダーは手動で指定してください。このヘッダーが指定されていない場合、一部の HTTP クライアントはデフォルト値 */* を使用するため、署名エラーが発生する可能性があります。 X-Ca-Request-Mode: debug # デバッグモードを有効にするかどうかを指定します。このパラメーターでは、大文字と小文字は区別されません。このパラメーターが未指定の場合、デバッグモードはデフォルトで無効になります。API のデバッグフェーズでは、このモードを有効にしてください。 X-Ca-Version: 1 # API のバージョン番号。すべての API はバージョン 1 のみをサポートします。このリクエストヘッダーは指定しなくてもかまいません。デフォルトのバージョン番号は 1 です。 X-Ca-Signature-Headers: X-Ca-Request-Mode,X-Ca-Version,X-Ca-Stage,X-Ca-Key,X-Ca-Timestamp # 署名計算に含まれるカスタムリクエストヘッダー。サーバーは、この設定に基づいてリクエストヘッダーを読み取り、署名を検証します。この設定には、Content-Type、Accept、Content-MD5、Date の各リクエストヘッダーは含まれません。これらのヘッダーは、基本的な署名構造にすでに含まれています。詳細については、「リクエスト署名のドキュメント」をご参照ください。 X-Ca-Stage: RELEASE # API のステージ。有効値: TEST、PRE、RELEASE。このパラメーターでは、大文字と小文字は区別されません。API プロバイダーは、API を公開するステージを選択できます。API は、指定されたステージに公開された後にのみ呼び出すことができます。そうでない場合、システムは API が見つからないか、URL が無効であると報告します。 X-Ca-Key: 60022326 # リクエストの AppKey。AppKey は API Gateway コンソールで生成します。API は、承認された後にのみ呼び出すことができます。デフォルトでは、Alibaba Cloud Marketplace などのチャネルから購入した API は、アプリケーションに対して承認済みです。すべての Alibaba Cloud 製品は 1 つの AppKey システムを共有しています。他の有効化された Alibaba Cloud 製品に影響を与えないよう、AppKey は慎重に削除してください。 X-Ca-Timestamp: 1471864864235 # リクエストのタイムスタンプ。この値は、1970年1月1日 00:00:00 UTC から経過したミリ秒数です。タイムスタンプは 15 分間有効です。 X-Ca-Nonce:b931bc77-645a-4299-b24b-f3669be577ac # リクエストの一意の ID。AppKey、API、Nonce の組み合わせは、15 分以内に一意である必要があります。このパラメーターは、タイムスタンプとともにリプレイ攻撃を防ぐために使用されます。 X-Ca-Signature: FJleSrCYPGCU7dMlLTG+UD3Bc5Elh3TV3CWHtSKh1Ys= # リクエストの署名。 CustomHeader: CustomHeaderValue # カスタムリクエストヘッダー。これは一例です。実際のリクエストでは、API 定義に基づいて複数のカスタムリクエストヘッダーを設定できます。レスポンス
ステータスコード:
400 # レスポンスのステータスコード。200~299 の値は成功を示します。400~499 の値はクライアントエラーを示します。500 以上の値はサーバーエラーを示します。レスポンスヘッダー:
X-Ca-Request-Id: 7AD052CB-EE8B-4DFD-BBAF-EFB340E0A5AF # リクエストの一意の ID。API Gateway がリクエストを受信すると、リクエスト ID を生成し、レスポンスヘッダーに含めてクライアントに返します。トラブルシューティングと追跡のために、このリクエスト ID はクライアントとバックエンドサービスの双方で記録してください。 X-Ca-Error-Message: Invalid Url # API Gateway から返されるエラーメッセージ。リクエストでエラーが発生した場合、API Gateway はレスポンスヘッダーにエラーメッセージを含めてクライアントに返します。 X-Ca-Debug-Info: {"ServiceLatency":0,"TotalLatency":2} # デバッグモードが有効になっている場合、デバッグ情報が返されます。この情報は変更される可能性があり、共同デバッグフェーズでの参考情報としてのみ使用されます。
API を呼び出す際は、HTTP または HTTPS のいずれを使用する場合でも、リクエストには署名情報を含める必要があります。AppKey はユーザーを識別し、AppSecret は署名文字列を暗号化してサーバーで署名を検証するために使用されるキーです。暗号化された署名の計算方法と渡し方の詳細については、「ダイジェスト認証を使用した API の呼び出し」をご参照ください。
署名の計算方法に関するサンプルコードについては、API Gateway コンソールの「SDK のダウンロード」ページの SDK のサンプルをご参照ください。
詳細については、「概要」をご参照ください。