Amazon API Gateway
開発者ガイド

API Gateway コンソールを使用してメソッドをセットアップする

API メソッドをセットアップする前に、以下について検証します。

API Gateway コンソールで API Gateway メソッドリクエストをセットアップする

API Gateway コンソールを使用して API のメソッドリクエスト/応答を指定し、さらにメソッドがリクエストを認証する方法を設定するには、以下の手順に従います。

注記

以下の手順は、「API Gateway コンソールを使用して API 統合リクエストを設定する」の手順をすでに完了していることを前提とします。これらは、「Lambda 統合で API Gateway API をビルドする」の説明を補うのに最適です。

  1. [リソース] ペインでメソッドを選択し、[メソッドの実行] ペインで [メソッドリクエスト] を選択します。

  2. [設定] で鉛筆アイコンを選択し、[認証] ドロップダウンメニューから使用可能なオーソライザーを 1 つ選択します。

    1. すべてのユーザーでメソッドへのオープンアクセスを有効化するには、[NONE] を選択します。デフォルト設定が変更されていない場合、このステップはスキップできます。

    2. IAM 権限を使用してメソッドへのクライアントアクセスを制御するには、[AWS_IAM] を選択します。これを選択した場合、適切な IAM ポリシーがアタッチされた IAM ロールのユーザーのみがこのメソッドを呼び出すことができます。

      IAM ロールを作成するには、以下のような形式のアクセスポリシーを指定します。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "resource-statement" ] } ] }

      このアクセス ポリシーでは、resource-statement は [認証の設定] セクションの [ARN] フィールドの値です。これらの IAM 権限の詳細については、「IAM アクセス権限により API へのアクセスを制御する」を参照してください。

      IAM ロールを作成するには、Lambda 統合で API Gateway API をビルドするの「Lambda 関数を作成する」の「Lambda 呼び出しロールとそのポリシーを作成するには」と「Lambda 実行ロールとそのポリシーを作成するには」の手順に従うことができます。

      選択肢を保存するには、[更新] を選択します。それ以外の場合は、[キャンセル] を選択します。

    3. Lambda オーソライザーを使用するには、[トークンオーソライザー] のいずれかを選択します。この選択肢をドロップダウンメニューに表示するには、Lambda オーソライザーを作成済みである必要があります。Lambda オーソライザーの詳細な作成方法については、「API Gateway Lambda オーソライザーの使用」を参照してください。

    4. Amazon Cognito ユーザープールを使用するには、[Cognito ユーザープールオーソライザー] で使用可能なユーザープールを選択します。この選択肢をドロップダウンメニューに表示するには、Amazon Cognito でユーザープールを、API Gateway で Amazon Cognito ユーザープールオーソライザーを作成済みである必要があります。Amazon Cognito ユーザープールオーソライザーの詳細な作成方法については、「Amazon Cognito ユーザープール をオーソライザーとして使用して REST API へのアクセスを制御する」を参照してください。

  3. リクエスト検証を有効化または無効化するには、[リクエストの検証] ドロップダウンメニューの鉛筆アイコンを選択し、リストアップされたオプションから 1 つ選択します。各オプションの詳細については、「API Gateway でリクエストの検証を有効化する」を参照してください。

  4. API キーを要求するには、鉛筆アイコンを選択して [必要な API キー] ドロップダウンメニューを開き、API 要件に応じて true または false を選択します。有効にすると、API キーは使用量プランで使用され、クライアントトラフィックを絞り込みます。

  5. クエリ文字列パラメータをメソッドに追加するには、以下の操作を実行します。

    1. [URL クエリ文字列パラメータ] の横の矢印を選択した後、[クエリ文字列の追加] を選択します。

    2. [名前] に、クエリ文字列パラメータの名前を入力します。

    3. チェックマークアイコンを選択し、新しいクエリ文字列パラメーター名を保存します。

    4. 新しく作成されたクエリ文字列パラメータがリクエスト検証に使用される場合は、[必須] オプションを選択します。リクエスト検証の詳細については、「API Gateway でリクエストの検証を有効化する」を参照してください。

    5. 新しく作成されたクエリ文字列パラメータがキャッシングキーの一部として使用される場合は、[Caching (キャッシュ)] オプションを選択します。これは、キャッシングが有効な場合にのみ適用されます。キャッシングの詳細については、「メソッド/統合パラメーターをキャッシュキーとして使用する」を参照してください。

    ヒント

    クエリ文字列パラメータを削除するには、関連付けられた x アイコンを選択した後、[このパラメータおよび依存パラメータの削除] を選択して削除を確定します。

    クエリ文字列パラメーターの名前を変更するには、削除して新しいものを作成します。

  6. メソッドにヘッダーパラメータを追加するには、以下の操作を実行します。

    1. [HTTP リクエストヘッダー] の横の矢印を選択した後、[ヘッダーの追加] を選択します。

    2. [名前] にヘッダーパラメータの名前を入力した後、チェックマークアイコンを選択して設定を保存します。

    3. 新しく作成されたヘッダーパラメータがリクエスト検証に使用される場合は、[必須] オプションを選択します。リクエスト検証の詳細については、「API Gateway でリクエストの検証を有効化する」を参照してください。

    4. 新しく作成されたヘッダーパラメータがキャッシングキーの一部として使用される場合は、[Caching (キャッシュ)] オプションを選択します。これは、キャッシュが有効になっている場合にのみ適用されます。キャッシングの詳細については、「メソッド/統合パラメーターをキャッシュキーとして使用する」を参照してください。

    ヒント

    ヘッダーパラメータを削除するには、関連付けられた x アイコンを選択した後、[このパラメータおよび依存パラメータの削除] を選択して削除を確定します。

    ヘッダーパラメーターの名前を変更するには、削除して新しいものを作成します。

  7. POSTPUT、または PATCH HTTP 動詞でメソッドリクエストのペイロード形式を宣言するには、[リクエストボディ] を展開して以下を実行します。

    1. [モデルの追加] を選択します。

    2. [コンテンツタイプ] に MIME タイプ (application/json など) を入力します。

    3. [モデル名] ドロップダウンメニューを開いてペイロードに使用可能なモデルを選択し、チェックマークアイコンを選択して設定を保存します。

      API で現在使用可能なモデルには、すでに作成して API の [モデル] コレクションに追加しているモデルに加え、デフォルトの Empty および Error モデルが含まれます。モデル作成についての詳細は、モデルを作成する を参照してください。

      注記

      モデルはペイロードの予測されるデータ形式をクライアントに通知するのに便利です。スケルトンベースのマッピングテンプレートを作成するのに役立ちます。API の厳密に型指定された SDK を Java、C#、Objective-C、および Swift などの言語で作成することが重要です。ペイロードに対するリクエスト検証が有効になっている場合にのみ必要です。

  8. API Gateway で作成されたこの API の Java SDK にオペレーション名を割り当てるには、[SDK 設定] を展開し、[オペレーション名] に名前を入力します。たとえば、GET /pets/{petId} のメソッドリクエストでは、対応する Java SDK のオペレーション名は、デフォルトで GetPetsPetId です。この名前はメソッドの HTTP 動詞 (GET) とリソースパスの変数名 (PetsPetId) から構成されています。オペレーション名を getPetById に設定した場合、SDK オペレーション名は GetPetById になります。

API Gateway コンソールで API Gateway メソッドレスポンスをセットアップする

API メソッドには、1 つ以上のレスポンスを含めることができます。各レスポンスは HTTP ステータスコードでインデックス作成されます。デフォルトでは、API Gateway コンソールはメソッドレスポンスに 200 レスポンスを追加します。たとえばこれを修正し、メソッドが 201 を返すように設定できます。アクセス拒否の 409や、初期化されていないステージ変数が使用されている場合の 500 など、その他のレスポンスを追加することもできます。

API Gateway コンソールを使用してレスポンスを変更、削除、または API メソッドに追加するには、次の手順に従います。

  1. API リソースの指定のメソッドで、[メソッドの実行] から [メソッドレスポンス] を選択します。

  2. 新しいレスポンスを追加するには、[レスポンスの追加] を選択します。

    1. [HTTP のステータス] に HTTP ステータスコード (200400500 など) を入力し、チェックマークアイコンを選択して選択内容を保存します。

      バックエンドが返したレスポンスに対応するメソッドレスポンスが定義されていない場合、API Gateway はクライアントにレスポンスを返しません。代わりに、500 Internal server error エラーレスポンスを返します。

    2. 指定のステータスコードのレスポンスを展開します。

    3. [ヘッダーの追加] を選択します。

    4. [{status} のレスポンスヘッダー] の [名前] に名前を入力した後、チェックマークアイコンを選択して選択肢を保存します。

      バックエンドに返されたヘッダーをメソッドレスポンスで定義されたものに変換する必要がある場合は、最初にこのステップの説明に従ってメソッドレスポンスヘッダーを追加する必要があります。

    5. [{status} のレスポンスヘッダー] で [レスポンスモデルの追加] を選択します。

    6. [コンテンツタイプ] にレスポンスペイロードのメディアタイプを入力し、[モデル] ドロップダウンメニューからモデルを選択します。

    7. チェックマークアイコンを選択して、設定を保存します。

  3. 既存のレスポンスを変更するには、レスポンスを展開して上記のステップ 2 を実行します。

  4. レスポンスを削除するには、レスポンスの x アイコンを選択し、レスポンスの削除を確定します。

バックエンドから返されたすべてのレスポンスで、互換性のあるレスポンスをメソッドレスポンスとして設定する必要があります。ただし、バックエンドの結果がクライアントに返される前にメソッドレスポンスにマッピングされない場合を除き、メソッドレスポンスのヘッダーとペイロードモデルの設定はオプションです。API のために厳密に型指定された SDK を作成している場合は、メソッドレスポンスペイロードモデルも重要です。