API を作成します:API バックエンド サービスを定義します
API バックエンド サービス このステップは、バックエンド サービスが受け取る API リクエストのフォーマットを定義します。つまり、先の手順で設定したフロントエンドの API リクエストをいったん API Gateway に送ります。次に、API Gateway がマッピング ルールを解析し、要求に応じてバックエンドにリクエストを送信します。バックエンド サービスの修正コストを最小限にし、最大限に互換性を保証します。
要は、本手順で API Gateway がリクエストをバックエンドに送る際に、リクエストのフォーマットを定義し、定義済みのバックエンド フォーマットと一致させます。
手順 1:バックエンド サービスのアドレス、バックエンドのリクエスト パス、HTTP Method およびタイムアウトしきい値を含め、基本的なバックエンド定義を設定します。
- バックエンド サービス アドレス:バックエンド サービスの http(s)://ホスト名:ポート番号 を示します。ドメイン名にすることもできます。例では、バックエンド サービス アドレス
https://a.b.com:8080
となります。 - バックエンド リクエスト Path: API Gateway がバックエンドにアクセスするために使用するパスを示します。URL の後から “?” まで、バックエンド サービス アドレスが続きます。例では、バックエンドによるリクエストのパスは /region/group形式となります。
- フロントエンド設定の例で Path は /getapilist であることに注目、 バックエンドのパスと同じである必要はありませんが、バックエンドのパスにパラメーターが渡す必要があります。詳しく次のセクションで説明します。
- バックエンドの method は、フロントエンドのメソッドと同じである必要はありませんが、同じであることを推奨します。例では、POST メソッドを使用しています。
手順 2:バックエンド サービスのパラメーター、とりわけマッピング パラメーターを設定します。
- 上図のとおり、このステップでは、前のステップのフロントエンド入力パラメーターを取得します。左側に赤くハイライトされている 2 列は変更しなければなりません。フロントエンドおよびバックエンドが同じであれば、変更の必要はありません。
- フロントエンドでは、region と group が Query および Body に設定されていることに注目、ただし、バックエンドでは、これらのパラメーターは Path で受け取るように設定しています。先に設定された Path でエラーメッセージが表示されます。図のとおり変更された後は、本エラーは消えるはずです。
- バックエンドで使用されている実際のパラメーター名および受取場所に応じて設定を調整します。図の左に赤くハイライトされている部分は、バックエンド用に修正しなければなりません。右側の設定は、確立されたフロントエンドの設定で、変更はできません。フロントエンドの設定が変更された場合、前の手順に戻って設定を修正しなければなりません。
出来上がった設定は下図のとおりとなります。
Path のパラメーター位置として確実に Parameter Path が選択されるようにします。
固定パラメーターおよびシステム パラメーターは API リクエスト元には見えません。API Gateway が、バックエンドサービスにリクエストを送る際に付け加えられます。
固定パラメーター:たとえば、バックエンドが constant を受け取る必要があるが、ユーザーにこの値を見せたくない場合、固定パラメーターを設定することで constant を Header や Query で受け取ることができるようにします。
システム パラメーター:たとえば、ログ統計 API の呼び出しに使用されたアプリ ID を取得する必要がある場合、システム パラメーターを設定して Header や Query でアプリ ID を受け取ることができます。CaRequestId フィールドはバックエンドで受け取られるよう強く推奨します。問題を特定し、完全ログを生成するために各リクエストには一意の ID があります。下図を参照。
API を作成します:返される結果を定義します
現時点では、返される結果は API gateway では解析せず、API リクエスト元に直接転送します。