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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

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

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

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

注記

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

  1. リソースペインで、メソッドを選択し、メソッドリクエストタブを選択します。

  2. [メソッドリクエストの設定] セクションで、[編集] を選択します。

  3. [承認] で、使用可能なオーソライザーを選択します。

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

    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 REST 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 へのアクセスを制御する」を参照してください。

  4. リクエスト検証を指定するには、[リクエストの検証] ドロップダウンメニューから値を選択します。リクエスト検証を無効にするには、[なし] を選択します。各オプションの詳細については、「API Gateway でリクエストの検証を使用する」を参照してください。

  5. [API キーの必要性] を選択すると、API キーを要求できるようになります。有効にすると、API キーは使用量プランで使用され、クライアントトラフィックを絞り込みます。

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

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

    1. [URL クエリ文字列パラメータ] を選択してから、[クエリ文字列の追加] を選択します。

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

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

    4. 新しく作成されたクエリ文字列パラメータがキャッシングキーの一部として使用される場合は、[キャッシュ] を選択します。キャッシングの詳細については、「メソッドパラメータまたは統合パラメータをキャッシュキーとして使用して、キャッシュされたレスポンスにインデックスを付ける」を参照してください。

    クエリ文字列パラメータを削除するには、[削除] を選択します。

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

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

    2. [名前] に、ヘッダーの名前を入力します。

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

    4. 新しく作成されたヘッダーがキャッシングキーの一部として使用される場合は、[キャッシュ] を選択します。キャッシングの詳細については、「メソッドパラメータまたは統合パラメータをキャッシュキーとして使用して、キャッシュされたレスポンスにインデックスを付ける」を参照してください。

    ヘッダーを削除するには、[削除] を選択します。

  9. POSTPUT、または PATCH HTTP 動詞でメソッドリクエストのペイロード形式を宣言するには、[リクエスト本文] を選択して以下を実行します。

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

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

    3. [モデル] では、ドロップダウンメニューからモデルを選択します。API で現在使用可能なモデルには、すでに作成して API の [モデル] コレクションに追加しているモデルに加え、デフォルトの Empty および Error モデルが含まれます。モデル作成についての詳細は、データモデルを理解する を参照してください。

      注記

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

  10. [保存] を選択します。

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

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

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

  1. リソースペインで、メソッドを選択し、メソッドレスポンスタブを選択します。タブを表示するには、右矢印ボタンを選択する必要がある場合があります。

  2. [メソッドレスポンスの設定] セクションで、[レスポンスを作成] を選択します。

  3. [HTTP ステータスコード] には、200400、または 500 などの HTTP ステータスコードを入力します。

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

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

  5. [ヘッダー名] に名前を入力します。

    バックエンドからクライアントにヘッダーを返すには、メソッドレスポンスにヘッダーを追加します。

  6. [モデルを追加] を選択して、メソッドレスポンス本文の形式を定義します。

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

  7. [保存] を選択します。

既存のレスポンスを変更するには、メソッドレスポンスに移動し、[編集] を選択します。HTTP ステータスコードを変更するには、[削除] を選択し、新しいメソッドレスポンスを作成します。

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