

# API Gateway の REST API のメソッド
<a name="how-to-method-settings"></a>

 API Gateway では、API メソッドに[メソッドリクエスト](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html)と[メソッドレスポンス](https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html)が含まれます。API メソッドをセットアップし、バックエンドのサービスへのアクセスをリクエストするためにクライアントが実行しなければならない操作を定義し、その操作によってクライアントが受け取るレスポンスを定義します。入力では、クライアント用にメソッドリクエストパラメータか該当するペイロードを選択し、実行時に必須データやオプションデータを提供できます。出力では、メソッドレスポンスステータスコード、ヘッダー、該当する本文をターゲットとして定義し、クライアントに返される前のバックエンドレスポンスデータをマッピングできます。API の動作および入出力形式に関するデベロッパーの理解を促進するために、[API をドキュメント化](api-gateway-documenting-api.md)し、[無効なリクエスト](api-gateway-method-request-validation.md)に関する[適切なエラーメッセージを提供](api-gateway-gatewayResponse-definition.md#customize-gateway-responses)することができます。

API メソッドリクエストは、HTTP リクエストです。メソッドリクエストをセットアップするには、HTTP メソッド (または動詞)、API [リソース](https://docs.aws.amazon.com/apigateway/latest/api/API_Resource.html)へのパス、ヘッダー、該当するクエリ文字列パラメータを設定します。HTTP メソッドが `POST`、`PUT`、または `PATCH` の場合、ペイロードも設定できます。たとえば、[PetStore サンプル API](api-gateway-create-api-from-example.md) を使用してペットを取得するには、`GET /pets/{petId}` の API メソッドリクエストを定義します。`{petId}` は、実行時に数字をとることができるパスパラメータです。

```
GET /pets/1
Host: apigateway.us-east-1.amazonaws.com
...
```

クライアントが誤ったパスを指定すると (`/pet/1` ではなく `/pets/one` や `/pets/1` など)、例外がスローされます。

API メソッドレスポンスは、指定のステータスコードの HTTP レスポンスです。非プロキシ統合では、メソッドレスポンスをセットアップしてマッピングの必須ターゲットまたはオプションたーげえとを指定する必要があります。これらは、統合レスポンスのヘッダーや本文を関連するメソッドレスポンスのヘッダーや本文に変換します。このマッピングは、そのまま統合を介してヘッダーまたは本文を渡す単純な [ID 変換](https://en.wikipedia.org/wiki/Identity_transform)です。たとえば、次の `200` メソッドレスポンスに、成功した統合レスポンスがそのまま通過する例を示します。

```
200 OK 
Content-Type: application/json
...

{
    "id": "1",
    "type": "dog",
    "price": "$249.99"
}
```

原理上は、バックエンドからの特定のレスポンスに対応するメソッドレスポンスを定義することができます。通常、これにはあらゆる 2XX、4XX、および 5XX レスポンスが含まれます。ただし、バックエンドが返すすべてのレスポンスを前もって把握できない可能性があるため、この手順は実用的でないことがあります。実際には、1 つのメソッドレスポンスをデフォルトとして指定し、バックエンドからの不明なレスポンスやマッピングされていないレスポンスを処理することができます。デフォルトとして 500 レスポンスを指定することをお勧めします。いずれの場合も、非プロキシ統合に対してメソッドレスポンスを 1 つ以上セットアップする必要があります。そうしなければ、バックエンドでリクエストが成功した場合であっても API Gateway が クライアントに 500 のエラーレスポンスを返します。

 Java SDK など厳密に型指定された SDK を API 用にサポートするには、メソッドリクエストの入力用とメソッドレスポンスの出力用のデータモデルを定義する必要があります。

## 前提条件
<a name="method-setting-prerequisites"></a>

API メソッドをセットアップする前に、以下について検証します。
+ メソッドが API Gateway で使用可能であることが必要です。「」の手順に従います[チュートリアル: HTTP 非プロキシ統合を使用して REST API を作成する](api-gateway-create-api-step-by-step.md)
+ メソッドと Lambda 関数を通信させるには、IAM で Lambda 呼び出しロールと Lambda 実行ロールを作成済みである必要があります。メソッドが で通信するための Lambda 関数も作成しておく必要がありますAWS Lambda ロールと関数を作成するには、[Lambda 非プロキシ統合用の Lambda 関数の作成](getting-started-lambda-non-proxy-integration.md#getting-started-new-lambda) の「[AWS Lambda 統合を選択するチュートリアル](getting-started-with-lambda-integration.md)」で説明する指示に従ってください。
+ メソッドを HTTP または HTTP プロキシ統合と通信させるには、メソッドが通信する HTTP エンドポイント URL をすでに作成してアクセスを確立している必要があります。
+  HTTP および HTTP プロキシエンドポイントの証明書が API Gateway によりサポートされていることを確認します。詳細については、「[API Gateway での HTTP および HTTP プロキシ統合のための API Gateway 対応の証明機関](api-gateway-supported-certificate-authorities-for-http-endpoints.md)」を参照してください。

**Topics**
+ [前提条件](#method-setting-prerequisites)
+ [API Gateway でメソッドリクエストをセットアップする](api-gateway-method-settings-method-request.md)
+ [API Gateway でメソッドレスポンスをセットアップする](api-gateway-method-settings-method-response.md)
+ [API Gateway コンソールを使用してメソッドをセットアップする](how-to-set-up-method-using-console.md)