このトピックでは、API GatewayでHTTPタイプのバックエンドサービスを使用するAPIを作成および公開する方法に関するクイックガイドを提供します。 このトピックでは、Alibaba Cloud App認証タイプに基づいてアプリケーションとAppKeyとAppSecretのペアを使用してAPIを呼び出す方法についても説明します。
前提条件
仮想プライベートクラウド (VPC) 環境が作成されます。 詳細については、「IPv4 CIDRブロックを使用したVPCの作成」および「IPv6 CIDRブロックを使用したVPCの作成」をご参照ください。
Elastic Compute Service (ECS) インスタンスが作成されました。 詳細については、「手順1: ECSインスタンスの作成」をご参照ください。
この例では、VPCにデプロイされたECSインスタンスが使用されます。 ECSインスタンスは、API Gatewayインスタンスと同じリージョンにあります。 ECSインスタンスでは、Apacheがデプロイされ、デフォルトのポート80を使用します。 詳細については、「手順4: Apacheのデプロイ」をご参照ください。
処理中
このトピックでは、ステップバイステップのガイドを提供し、バックエンドサービスの作成から始めます。 このガイドでは、APIとアプリケーションの作成と関連付けについても説明します。 さらに、このトピックでは、SDKベースの例とcURLベースの例を使用して、APIをオンラインでデバッグする方法について説明します。
プロセスは6つのステップから成っています:
バックエンドサービスの作成: このステップでは、API Gatewayインスタンスが存在するリージョンのリソースとしてバックエンドサービスを設定します。 APIの作成時に、設定されたバックエンドサービスを直接選択できます。
APIグループの作成: この手順では、APIグループを作成します。 APIは、ビジネスタイプとビジネス組織構造に基づいてグループで管理されます。
APIの作成: この手順では、API GatewayコンソールでAPIを作成します。
アプリケーションを作成し、APIを呼び出す権限を付与する: この手順では、APIを呼び出すためのIDとして使用されるアプリケーションを作成し、権限を付与します。
APIのデバッグ: この手順では、API Gatewayコンソールが提供するオンラインデバッグ機能を使用して、APIが期待どおりに機能するかどうかを確認します。
APIの呼び出し: このステップでは、API Gatewayが提供するSDKを使用するか、cURLコマンドラインツールでcURLコマンドを実行してAPIを呼び出します。
手順1: バックエンドサービスの作成
API Gatewayでは、バックエンドサービスをリージョンのリソースとして設定し、管理を簡素化できます。 API Gatewayコンソールでバックエンドサービスを作成し、異なる環境でバックエンドサービスに異なるURLを設定するだけで済みます。 その後、設定されたバックエンドサービスを直接選択してAPIを作成できます。
API Gatewayコンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。 左側のナビゲーションウィンドウで、 を選択します。 次に、右上隅の [バックエンドサービスの作成] をクリックします。
[バックエンドサービスの作成] ダイアログボックスで、[名前] を
[httpd-online]に、[入力] を[HTTP/HTTPSサービス]に設定し、[確認] をクリックします。[バックエンドサービス] ページで、
[httpd-online]バックエンドサービスをクリックします。 [バックエンドサービス定義] ページで、[運用] タブをクリックし、右上隅の [作成] をクリックします。
[基本情報] ページで、[バックエンドサービスのURL] ボックスに
http:// 192.168.*.***:80と入力し、[公開] をクリックします。説明http:// 192.168.*.***:80は、作成されたECSインスタンスのプライベートIPアドレスです。
手順2: APIグループの作成
APIはAPIグループで管理されます。 APIを作成する前に、APIグループを作成する必要があります。
[APIグループ] ページで、作成したグループを表示し、グループ名をクリックして [グループの詳細] ページに移動します。 [グループの詳細] ページで、ドメイン名のバインド、基本情報の変更、およびAPIグループのインスタンスタイプの変更を行うことができます。
API Gatewayは、APIグループにパブリックセカンドレベルドメイン名を自動的に割り当てます。 このドメイン名はデバッグにのみ使用され、中国本土以外のリージョンでは1日あたり100回の呼び出し、中国本土内のリージョンでは1日あたり1,000回の呼び出しの制限があります。 APIグループを作成した後、独立したドメイン名をバインドすることを推奨します。
左側のナビゲーションウィンドウで、 を選択します。 [APIグループ] ページで、右上隅の [グループの作成] をクリックします。
[グループの作成] ダイアログボックスで、[インスタンス] ドロップダウンリストからインスタンスを選択し、[グループ名] を
[httpd-demo]に設定し、[BasePath] を/に設定して、[確認] をクリックします。
ステップ3: APIの作成
左側のナビゲーションウィンドウで、 を選択します。 [APIグループ] ページで、作成した
httpd-demoグループを見つけ、[操作] 列の [APIの管理] をクリックします。[API] ページで、右上隅の [APIの作成] をクリックします。
[基本情報] ステップで、パラメーターを設定し、[次へ] をクリックします。 次の表に、パラメーターを示します。

パラメーター
例
グループ
httpd-デモ
API名
httpd-test
セキュリティ認証
Alibaba Cloudアプリ
AppCode認証
AppCode認証の有効化 (ヘッダーとクエリ)
署名アルゴリズム
HMAC_SHA256
[APIリクエストの定義] ステップで、次のパラメーターを設定し、[次へ] をクリックします。
説明この手順では、webブラウザー、モバイルアプリ、ビジネスシステムなどのクライアントがAPIを要求する方法を定義します。 この手順で設定する必要があるパラメーターには、プロトコル、リクエストパス、HTTPメソッド、リクエストモード、および [リクエストパラメーター] セクションのパラメーターが含まれます。 この例では、Request Modeパラメーターはパススルーに設定されています。 これは、API Gatewayがクライアントから送信されたパラメーターを処理せず、それらをバックエンドに直接渡すことを示します。

[バックエンドサービスの定義] ステップで、次のパラメーターを設定し、[次へ] をクリックします。
説明このステップでは、API Gatewayがクライアントから受信したリクエストを送信するバックエンドサービスのタイプとURL、およびパラメーターのマッピングと処理方法を設定します。 この例では、Backend Service TypeパラメーターはHTTP/HTTPS Serviceに設定されています。

パラメーター
例
設定モード
[既存のバックエンドサービスを使用] を選択します。
バックエンドサービスタイプ
[HTTP/HTTPSサービス] を選択します。
バックエンドサービス
httpd-onlineバックエンドリクエストパス
/
HTTPメソッド
GET
バックエンドサービスのタイムアウト期間
10000
[応答の定義] ステップで、ビジネス要件に基づいてページのパラメーターを設定し、[作成] をクリックします。
表示されるメッセージで、[公開] をクリックします。

[APIの発行] ダイアログボックスで、環境を [リリース] に設定し、[備考] セクションに備考を入力し、[発行] をクリックします。
説明APIを変更した後、変更を有効にするには、対応する環境にAPIを公開する必要があります。 API Gatewayには、テスト、プレリリース、本番の3つの組み込み環境があります。

ステップ4: アプリケーションを作成し、APIの呼び出しを許可する
アプリケーションは、APIを呼び出すために使用するIDです。 この例の [APIの作成] ステップでは、認証方法がAlibaba Cloud Appに設定されています。 したがって、APIが公開された後、アプリケーションを作成し、アプリケーションにAPIを呼び出す権限を付与する必要があります。
アプリケーションの作成
左側のナビゲーションウィンドウで、 を選択します。 アプリページで、右上隅の [アプリの作成] をクリックします。
[アプリ名] フィールドにアプリケーション名を入力し、[確認] をクリックします。 この例では、httpdがアプリケーション名として入力されます。

[アプリ] ページで、作成した
[httpd]アプリケーションをクリックします。 [アプリの詳細] ページで、[AppKey]と[AppCode]の2つの認証方法が利用できることがわかります。AppKeyメソッドには、ユーザー名とパスワードのペアと同様に機能するAppKeyとAppSecretのペアが含まれます。 APIを呼び出すときは、AppKeyをパラメーターとして渡す必要があります。AppSecretは、署名の計算に使用されます。 API Gatewayは、AppKeyとAppSecretのペアを検証してIDを認証します。
アプリケーションにAPIを呼び出す権限を付与する
左側のナビゲーションウィンドウで、 を選択します。 APIページで、
http-testAPIを見つけ、[操作] 列の
/> [許可] をクリックします。 [権限付与] ページで、[ステージ] パラメーターを [生産] に設定します。 [承認用アプリの選択] セクションの検索バーに、作成したアプリケーションの名前を入力します。 検索結果で、作成したアプリケーションを選択し、[操作] 列の [追加] をクリックし、[確認] をクリックします。 アプリケーションがAPIの呼び出しを許可されていることを通知するメッセージが表示されます。

ステップ5: APIのデバッグ
API Gatewayはオンラインデバッグをサポートしています。 クライアントでこのAPIを呼び出す前に、この機能を使用してAPIが正しく構成されているかどうかを確認することを推奨します。
左側のナビゲーションウィンドウで、 を選択します。 [デバッグAPI] ページで、
httpd-testAPIを選択し、検証方法を [AppSecretの使用] に設定し、[リクエストの送信] をクリックします。次の結果が表示される場合、APIはデバッグを通過します。

ステップ6: APIを呼び出す
上記の手順を実行することで、APIを作成して公開し、APIを呼び出すためのアプリケーションを作成して承認し、APIをデバッグしました。 このステップでは、API Gatewayによって提供されるSDKを使用して、ビジネスシステムから公開されたAPIを呼び出すことができます。
SDKの使用
左側のナビゲーションウィンドウで、 を選択します。 [その他の言語のNode.js署名のサンプルコード] セクションで、[Node.js] などの言語を選択し、[Node.jsのサンプルコードの表示] をクリックします。
$ npm install aliyun-api-gateway -Sコマンドを実行し、nmpを使用してサンプルSDK for Node.jsをインストールします。次のコードスニペットで、この例で作成したアプリケーションのAppKeyとAppSecretに
YOUR_APP_KEYとYOUR_APP_SECRETを設定します。// Import the SDK for Node.js that you downloaded. const Client = require('aliyun-api-gateway').Client; // Create an instance for the authorized application. Specify the AppKey and AppSecret of the authorized application. const client = new Client('YOUR_APP_KEY','YOUR_APP_SECRET'); async function get() { // Use the domain name of the API group to which the API that you want to call belongs. You can use the public second-level domain name provided by API Gateway to test API calls. However, a limit is imposed on the number of API calls. We recommend that you bind an independent domain name to the API Group. var url = 'YOUR_GROUP_DOMAIN'; var result = await client.get(url, { // Specify the request header. Some APIs can return data formats based on the specified response type. We recommend that you manually define the request header based on your business requirements. headers: { accept: 'application/json' }, }); console.log(JSON.stringify(result)); } get().catch((err) => { console.log(err.stack); });
cURLの使用
左側のナビゲーションウィンドウで、[APIの呼び出し] > [アプリ] を選択します。 [アプリ] ページで、許可されたアプリケーションをクリックし、表示されるページでそのアプリケーションコードを取得します。 次に、次のサンプルコードを使用してAPIを呼び出します。
curl -i -X GET "http://3fbf0648d01e4aa5a1d*******-cn-hangzhou.alicloudapi.com" -H "Authorization:APPCODE c404eca23959492b9f0e4d4d15****"