

# API Gateway での REST API のリクエスト検証
<a name="api-gateway-method-request-validation"></a>

 統合リクエストを進める前に API リクエストの基本的な検証を実行するよう API Gateway を設定できます。検証に失敗した場合、API Gateway はすぐにリクエストに失敗して、400 個のエラーレスポンスを発信者に返し、CloudWatch Logs で検証結果を発行します。これによりバックエンドへの不必要な呼び出すが減少します。さらに重要な点として、アプリケーション固有の検証作業に集中することができます。リクエスト本文を検証するには、必要なリクエストパラメータが有効で null でないことを確認するか、より複雑なデータ検証用のモデルスキーマを指定します。

**Topics**
+ [API Gateway における基本的なリクエストの検証の概要](#api-gateway-request-validation-basic-definitions)
+ [REST API のデータモデル](models-mappings-models.md)
+ [API Gateway で基本的なリクエストの検証を設定する](api-gateway-request-validation-set-up.md)
+ [基本的なリクエスト検証を含むサンプル API の AWS CloudFormation テンプレート](api-gateway-request-validation-sample-cloudformation.md)

## API Gateway における基本的なリクエストの検証の概要
<a name="api-gateway-request-validation-basic-definitions"></a>

 基本的なリクエストの検証は API Gateway で処理できるため、ユーザーはバックエンドでのアプリケーション固有の検証に集中できます。検証のために、API Gateway は以下の条件のどちらかまたは両方を確認します。
+ 受信リクエストの URI、クエリ文字列、ヘッダーに必要なリクエストパラメータが含まれており、空白ではない。API Gateway はパラメータの存在のみをチェックし、タイプまたは形式はチェックしません。
+  該当するリクエストペイロードが、特定のコンテンツタイプのためのメソッドの[設定済みの JSON スキーマ](https://datatracker.ietf.org/doc/html/draft-zyp-json-schema-04)リクエストに準拠している。一致するコンテンツタイプが見つからない場合、リクエストの検証は実行されません。コンテンツタイプを問わず同じモデルを使用するには、データモデルのコンテンツタイプを `$default` に設定します。

検証を有効にするには、[リクエストの検証](https://docs.aws.amazon.com/apigateway/latest/api/API_RequestValidator.html)により検証ルールを指定し、この検証を API の[リクエストの検証のマップ](https://docs.aws.amazon.com/apigateway/latest/api/API_RequestValidator.html)に追加し、検証を個々の API メソッドに割り当てます。

**注記**  
リクエスト本文の検証と[API Gateway で REST API のマッピングテンプレートを使用しないペイロードのメソッドリクエストの動作](integration-passthrough-behaviors.md)は、2 つの異なるトピックです。リクエストペイロードと一致するモデルスキーマがない場合、元のペイロードをパススルーするかブロックするかを選択できます。詳細については、「[API Gateway で REST API のマッピングテンプレートを使用しないペイロードのメソッドリクエストの動作](integration-passthrough-behaviors.md)」を参照してください。