Configuration de la validation de demande de base dans API Gateway - Amazon API Gateway

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration de la validation de demande de base dans API Gateway

Cette section explique comment configurer la validation des demandes pour API Gateway à l'aide de la console et d'une définition OpenAPI. AWS CLI

Configuration la validation des demandes à l'aide de la console API Gateway

Vous pouvez utiliser la console API Gateway pour valider une demande en sélectionnant l'un des trois validateurs suivants pour une demande d'API :

  • Valider le corps.

  • Valider les paramètres de chaîne de requête et les en-têtes.

  • Valider le corps et les paramètres et en-têtes des chaînes de requête.

Lorsque vous appliquez l'un des validateurs à une méthode d'API, la console API Gateway ajoute le validateur à la carte de RequestValidatorsl'API.

Pour suivre ce didacticiel, vous allez utiliser un AWS CloudFormation modèle pour créer une API API Gateway incomplète. Cette API possède une ressource /validator avec les méthodes GET et POST. Ces deux méthodes sont intégrées au point de terminaison HTTP http://petstore-demo-endpoint.execute-api.com/petstore/pets. Vous allez configurer deux types de validation des demandes :

  • Dans la méthode GET, vous allez configurer la validation des demandes pour les paramètres de chaîne de requête d'URL.

  • Dans la méthode POST, vous allez configurer la validation des demandes pour le corps de la demande.

Cela permettra uniquement à certains appels d'API d'être transmis à l'API.

Téléchargez et décompressez le modèle de création d'application pour AWS CloudFormation. Vous allez utiliser ce modèle pour créer une API incomplète. Vous terminerez les étapes restantes dans la console API Gateway.

Pour créer une AWS CloudFormation pile
  1. Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.

  2. Choisissez Créer une pile, puis choisissez Avec de nouvelles ressources (standard).

  3. Dans Spécifier le modèle, choisissez Charger un modèle de fichier.

  4. Sélectionnez le modèle que vous avez téléchargé.

  5. Choisissez Suivant.

  6. Pour Nom de la pile, saisissez request-validation-tutorial-console, puis choisissez Suivant.

  7. Pour Configurer les options de pile, choisissez Suivant.

  8. Pour les fonctionnalités, reconnaissez que AWS CloudFormation vous pouvez créer des ressources IAM dans votre compte.

  9. Sélectionnez Envoyer.

AWS CloudFormation fournit les ressources spécifiées dans le modèle. La fin du provisionnement de vos ressources peut prendre quelques minutes. Lorsque le statut de votre AWS CloudFormation pile est CREATE_COMPLETE, vous êtes prêt à passer à l'étape suivante.

Pour sélectionner l'API que vous venez de créer
  1. Sélectionnez la pile request-validation-tutorial-console nouvellement créée.

  2. Sélectionnez Ressources.

  3. Sous ID physique, choisissez votre API. Ce lien vous dirigera vers la console API Gateway.

Avant de modifier les méthodes GET et POST, vous devez créer un modèle.

Pour créer un modèle
  1. Un modèle est requis pour utiliser la validation des demandes sur le corps d'une demande entrante. Pour créer un modèle, dans le volet de navigation principal, choisissez Modèles.

  2. Sélectionnez Create model.

  3. Pour Name (Nom), saisissez PetStoreModel.

  4. Pour Type de contenu, entrez application/json. Si aucun type de contenu correspondant n'est trouvé, la validation de demande n'est pas effectuée. Pour utiliser le même modèle quel que soit le type de contenu, saisissez $default.

  5. Pour Description, saisissez My PetStore Model comme description du modèle.

  6. Pour Schéma du modèle, collez le modèle suivant dans l’éditeur de code, puis choisissez Créer.

    { "type" : "object", "required" : [ "name", "price", "type" ], "properties" : { "id" : { "type" : "integer" }, "type" : { "type" : "string", "enum" : [ "dog", "cat", "fish" ] }, "name" : { "type" : "string" }, "price" : { "type" : "number", "minimum" : 25.0, "maximum" : 500.0 } } }

Pour plus d’informations sur le modèle, consultez Modèles de données pour les API REST.

Pour configurer la validation de requête pour une méthode GET
  1. Dans le volet de navigation principal, choisissez Ressources, puis sélectionnez la méthode GET.

  2. Dans l'onglet Demande de méthode, sous Paramètres de demande de méthode, choisissez Modifier.

  3. Pour Validateur de requête, sélectionnez Valider les paramètres de chaîne de requête et les en-têtes.

  4. Sous Paramètres de chaîne de requête d’URL, procédez comme suit :

    1. Sélectionnez Add query string (Ajouter une chaîne de requêtes).

    2. Pour Name (Nom), saisissez petType.

    3. Activez Obligatoire.

    4. Maintenez Mise en cache désactivée.

  5. Choisissez Enregistrer.

  6. Dans l’onglet Requête d’intégration, sous Paramètres de requête d’intégration, choisissez Modifier.

  7. Sous Paramètres de chaîne de requête d’URL, procédez comme suit :

    1. Sélectionnez Add query string (Ajouter une chaîne de requêtes).

    2. Pour Name (Nom), saisissez petType.

    3. Pour Mappage à partir de, entrez method.request.querystring.petType. Cela mappe petType au type d'animal de compagnie.

      Pour plus d'informations sur le mappage des données, consultez le didacticiel sur le mappage des données.

    4. Maintenez Mise en cache désactivée.

  8. Choisissez Enregistrer.

Pour tester la validation des requêtes pour la méthode GET
  1. Choisissez l’onglet Test. Vous devrez peut-être choisir la flèche droite pour afficher l'onglet.

  2. Pour Chaînes de requête, saisissez petType=dog, puis choisissez Tester.

  3. Le test de méthode renverra 200 OK et une liste de chiens.

    Pour obtenir des informations sur la façon de transformer ces données de sortie, consultez le didacticiel sur le mappage des données.

  4. Supprimez petType=dog et choisissez Tester.

  5. Le test de méthode renverra une erreur 400 avec le message d’erreur suivant :

    { "message": "Missing required request parameters: [petType]" }
Pour configurer la validation de requête pour la méthode POST
  1. Dans le volet de navigation principal, sélectionnez Ressources, puis sélectionnez la méthode POST.

  2. Dans l'onglet Demande de méthode, sous Paramètres de demande de méthode, choisissez Modifier.

  3. Pour Validateur de requête, sélectionnez Valider le corps.

  4. Sous Corps de la requête, choisissez Ajouter un modèle.

  5. Pour Type de contenu, entrezapplication/json, puis pour Modèle, sélectionnez PetStoreModel.

  6. Choisissez Enregistrer.

Pour tester la validation de requête pour une méthode POST
  1. Choisissez l’onglet Test. Vous devrez peut-être choisir la flèche droite pour afficher l'onglet.

  2. Sous Corps de la requête, collez ce qui suit dans l’éditeur de code :

    { "id": 2, "name": "Bella", "type": "dog", "price": 400 }

    Sélectionnez Tester).

  3. Le test de méthode renverra 200 OK et un message de réussite.

  4. Sous Corps de la requête, collez ce qui suit dans l’éditeur de code :

    { "id": 2, "name": "Bella", "type": "dog", "price": 4000 }

    Sélectionnez Tester).

  5. Le test de méthode renverra une erreur 400 avec le message d’erreur suivant :

    { "message": "Invalid request body" }

    Au bas des journaux de test, la raison pour laquelle le corps de la requête est non valide est renvoyée. Dans ce cas, le prix de l'animal de compagnie était supérieur au maximum spécifié dans le modèle.

Pour supprimer une AWS CloudFormation pile
  1. Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.

  2. Sélectionnez votre AWS CloudFormation pile.

  3. Choisissez Supprimer, puis confirmez votre choix.

Étapes suivantes

Configurez la validation de base des demandes à l'aide du AWS CLI

Vous pouvez créer un validateur pour configurer la validation des demandes à l'aide de l'interface  AWS CLI. Pour suivre ce didacticiel, vous allez utiliser un AWS CloudFormation modèle pour créer une API API Gateway incomplète.

Note

Il ne s'agit pas du même AWS CloudFormation modèle que le didacticiel de la console.

À l'aide d'une ressource /validator pré-exposée, vous allez créer les méthodes GET et POST. Ces deux méthodes seront intégrées au point de terminaison HTTP http://petstore-demo-endpoint.execute-api.com/petstore/pets. Vous allez configurer les deux validations de demandes suivantes :

  • Sur la méthode GET, vous allez créer un validateur params-only pour valider les paramètres de chaîne de requête d'URL.

  • Sur la méthode POST, vous allez créer un validateur body-only pour valider le corps de la demande.

Cela permettra uniquement à certains appels d'API d'être transmis à l'API.

Pour créer une AWS CloudFormation pile

Téléchargez et décompressez le modèle de création d'application pour AWS CloudFormation.

Pour effectuer le didacticiel suivant, vous avez besoin de l'AWS Command Line Interface (AWS CLI) version 2.

Pour les commandes longues, un caractère d’échappement (\) est utilisé pour les fractionner en plusieurs lignes.

Note

Dans Windows, certaines commandes CLI Bash que vous utilisez couramment (par exemple zip) ne sont pas prises en charge par les terminaux intégrés du système d'exploitation. Installez le sous-système Windows pour Linux afin d’obtenir une version intégrée à Windows d’Ubuntu et Bash. Les exemples de commandes CLI de ce guide utilisent le formatage Linux. Les commandes qui incluent des documents JSON en ligne doivent être reformatées si vous utilisez la CLI Windows.

  1. Utilisez la commande suivante pour créer la AWS CloudFormation pile.

    aws cloudformation create-stack --stack-name request-validation-tutorial-cli --template-body file://request-validation-tutorial-cli.zip --capabilities CAPABILITY_NAMED_IAM
  2. AWS CloudFormation fournit les ressources spécifiées dans le modèle. La fin du provisionnement de vos ressources peut prendre quelques minutes. Utilisez la commande suivante pour voir l'état de votre AWS CloudFormation pile.

    aws cloudformation describe-stacks --stack-name request-validation-tutorial-cli
  3. Lorsque le statut de votre AWS CloudFormation pile est définiStackStatus: "CREATE_COMPLETE", utilisez la commande suivante pour récupérer les valeurs de sortie pertinentes pour les étapes futures.

    aws cloudformation describe-stacks --stack-name request-validation-tutorial-cli --query "Stacks[*].Outputs[*].{OutputKey: OutputKey, OutputValue: OutputValue, Description: Description}"

    Les valeurs de sortie sont les suivantes :

    • ApiId, qui est l'ID de l'API. Pour ce didacticiel, l'ID d'API est abc123.

    • ResourceId, qui est l'ID de la ressource de validation dans laquelle les POST méthodes GET et sont exposées. Pour ce didacticiel, l'ID de ressource est efg456.

Pour créer les validateurs de demandes et importer un modèle
  1. Un validateur est requis pour utiliser la validation des demandes avec l'interface  AWS CLI. Utilisez la commande suivante pour créer un validateur qui valide uniquement les paramètres de demande.

    aws apigateway create-request-validator --rest-api-id abc123 \ --no-validate-request-body \ --validate-request-parameters \ --name params-only

    Notez l'ID du validateur params-only.

  2. Utilisez la commande suivante pour créer un validateur qui valide uniquement le corps de la demande.

    aws apigateway create-request-validator --rest-api-id abc123 \ --validate-request-body \ --no-validate-request-parameters \ --name body-only

    Notez l'ID du validateur body-only.

  3. Un modèle est requis pour utiliser la validation des demandes sur le corps d'une demande entrante. Utilisez la commande suivante pour importer un modèle.

    aws apigateway create-model --rest-api-id abc123 --name PetStoreModel --description 'My PetStore Model' --content-type 'application/json' --schema '{"type": "object", "required" : [ "name", "price", "type" ], "properties" : { "id" : {"type" : "integer"},"type" : {"type" : "string", "enum" : [ "dog", "cat", "fish" ]},"name" : { "type" : "string"},"price" : {"type" : "number","minimum" : 25.0, "maximum" : 500.0}}}}'

    Si aucun type de contenu correspondant n'est trouvé, la validation de demande n'est pas effectuée. Pour utiliser le même modèle quel que soit le type de contenu, spécifiez $default comme clé.

Pour créer les méthodes GET et POST
  1. Utilisez la commande suivante pour ajouter la méthode HTTP GET sur la ressource /validate. Cette commande crée la méthode GET, ajoute le validateur params-only et définit la chaîne de requête petType selon les besoins.

    aws apigateway put-method --rest-api-id abc123 \ --resource-id efg456 \ --http-method GET \ --authorization-type "NONE" \ --request-validator-id aaa111 \ --request-parameters "method.request.querystring.petType=true"

    Utilisez la commande suivante pour ajouter la méthode HTTP POST sur la ressource /validate. Cette commande crée la méthode POST, ajoute le validateur body-only et attache le modèle au validateur de corps uniquement.

    aws apigateway put-method --rest-api-id abc123 \ --resource-id efg456 \ --http-method POST \ --authorization-type "NONE" \ --request-validator-id bbb222 \ --request-models 'application/json'=PetStoreModel
  2. Utilisez la commande suivante pour configurer la réponse 200 OK de la méthode GET /validate.

    aws apigateway put-method-response --rest-api-id abc123 \ --resource-id efg456 \ --http-method GET \ --status-code 200

    Utilisez la commande suivante pour configurer la réponse 200 OK de la méthode POST /validate.

    aws apigateway put-method-response --rest-api-id abc123 \ --resource-id efg456 \ --http-method POST \ --status-code 200
  3. Utilisez la commande suivante pour configurer une Integration avec un point de terminaison HTTP spécifié pour la méthode GET /validation.

    aws apigateway put-integration --rest-api-id abc123 \ --resource-id efg456 \ --http-method GET \ --type HTTP \ --integration-http-method GET \ --request-parameters '{"integration.request.querystring.type" : "method.request.querystring.petType"}' \ --uri 'http://petstore-demo-endpoint.execute-api.com/petstore/pets'

    Utilisez la commande suivante pour configurer une Integration avec un point de terminaison HTTP spécifié pour la méthode POST /validation.

    aws apigateway put-integration --rest-api-id abc123 \ --resource-id efg456 \ --http-method POST \ --type HTTP \ --integration-http-method GET \ --uri 'http://petstore-demo-endpoint.execute-api.com/petstore/pets'
  4. Utilisez la commande suivante pour configurer une réponse d'intégration pour la méthode GET /validation.

    aws apigateway put-integration-response --rest-api-id abc123 \ --resource-id efg456\ --http-method GET \ --status-code 200 \ --selection-pattern ""

    Utilisez la commande suivante pour configurer une réponse d'intégration pour la méthode POST /validation.

    aws apigateway put-integration-response --rest-api-id abc123 \ --resource-id efg456 \ --http-method POST \ --status-code 200 \ --selection-pattern ""
Pour tester l'API
  1. Pour tester la méthode GET qui effectuera la validation des demandes pour les chaînes de requête, utilisez la commande suivante :

    aws apigateway test-invoke-method --rest-api-id abc123 \ --resource-id efg456 \ --http-method GET \ --path-with-query-string '/validate?petType=dog'

    Le résultat sera 200 OK et une liste de chiens.

  2. Utilisez la commande suivante pour tester sans inclure la chaîne de requête petType.

    aws apigateway test-invoke-method --rest-api-id abc123 \ --resource-id efg456 \ --http-method GET

    Le résultat sera une erreur 400.

  3. Pour tester la méthode POST qui effectuera la validation des demandes pour le corps de la demande, utilisez la commande suivante :

    aws apigateway test-invoke-method --rest-api-id abc123 \ --resource-id efg456 \ --http-method POST \ --body '{"id": 1, "name": "bella", "type": "dog", "price" : 400 }'

    Le résultat sera 200 OK et un message de réussite.

  4. Utilisez la commande suivante pour tester en utilisant un corps non valide.

    aws apigateway test-invoke-method --rest-api-id abc123 \ --resource-id efg456 \ --http-method POST \ --body '{"id": 1, "name": "bella", "type": "dog", "price" : 1000 }'

    Le résultat sera une erreur 400, car le prix du chien est supérieur au prix maximum défini par le modèle.

Pour supprimer une AWS CloudFormation pile
  • Utilisez la commande suivante pour supprimer vos AWS CloudFormation ressources.

    aws cloudformation delete-stack --stack-name request-validation-tutorial-cli

Configuration de la validation de base des demandes à l'aide d'une définition OpenAPI

Vous pouvez déclarer un validateur de demande au niveau de l'API en spécifiant un ensemble d'objets x-amazon-apigateway-requestobjet -Validators.RequestValidator dans le mappage d'x-amazon-apigateway-requestobjet -validators afin de sélectionner la partie de la demande qui sera validée. Dans l'exemple de définition OpenAPI, il existe deux validateurs :

  • Le validateur all qui valide à la fois le corps, à l'aide du modèle de données RequestBodyModel, et les paramètres.

    Le modèle de RequestBodyModel données nécessite que l'objet JSON d'entrée contienne les price propriétés nametype, et. La propriété name peut être une chaîne, type doit être l'un de champs d'énumération spécifiés (["dog", "cat", "fish"]) et price doit être compris entre 25 et 500. Le paramètre id n'est pas obligatoire.

  • Le validateur param-only qui valide uniquement les paramètres.

Pour activer un validateur de demande sur toutes les méthodes d'une API, spécifiez une propriété x-amazon-apigateway-requestpropriété -validator au niveau de l'API de la définition OpenAPI. Dans l'exemple de définition OpenAPI, le validateur all est utilisé sur toutes les méthodes d'API, sauf s'il est remplacé. Lorsque vous utilisez un modèle pour valider le corps et qu'aucun type de contenu correspondant n'est trouvé, la validation de demande n'est pas effectuée. Pour utiliser le même modèle quel que soit le type de contenu, spécifiez $default comme clé.

Pour activer un validateur de demande sur une méthode individuelle, spécifiez la propriété x-amazon-apigateway-request-validator au niveau de la méthode. Dans cet exemple de définition OpenAPI, le validateur param-only remplace le validateur all sur la méthode GET.

Pour importer l'exemple OpenAPI dans API Gateway, consultez les instructions suivantes pour réaliser l'Importer une API régionale dans API Gateway ou l'Importation d'une API optimisée pour les périphériques dans API Gateway.

OpenAPI 3.0
{ "openapi" : "3.0.1", "info" : { "title" : "ReqValidators Sample", "version" : "1.0.0" }, "servers" : [ { "url" : "/{basePath}", "variables" : { "basePath" : { "default" : "/v1" } } } ], "paths" : { "/validation" : { "get" : { "parameters" : [ { "name" : "q1", "in" : "query", "required" : true, "schema" : { "type" : "string" } } ], "responses" : { "200" : { "description" : "200 response", "headers" : { "test-method-response-header" : { "schema" : { "type" : "string" } } }, "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/ArrayOfError" } } } } }, "x-amazon-apigateway-request-validator" : "params-only", "x-amazon-apigateway-integration" : { "httpMethod" : "GET", "uri" : "http://petstore-demo-endpoint.execute-api.com/petstore/pets", "responses" : { "default" : { "statusCode" : "400", "responseParameters" : { "method.response.header.test-method-response-header" : "'static value'" }, "responseTemplates" : { "application/xml" : "xml 400 response template", "application/json" : "json 400 response template" } }, "2\\d{2}" : { "statusCode" : "200" } }, "requestParameters" : { "integration.request.querystring.type" : "method.request.querystring.q1" }, "passthroughBehavior" : "when_no_match", "type" : "http" } }, "post" : { "parameters" : [ { "name" : "h1", "in" : "header", "required" : true, "schema" : { "type" : "string" } } ], "requestBody" : { "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/RequestBodyModel" } } }, "required" : true }, "responses" : { "200" : { "description" : "200 response", "headers" : { "test-method-response-header" : { "schema" : { "type" : "string" } } }, "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/ArrayOfError" } } } } }, "x-amazon-apigateway-request-validator" : "all", "x-amazon-apigateway-integration" : { "httpMethod" : "POST", "uri" : "http://petstore-demo-endpoint.execute-api.com/petstore/pets", "responses" : { "default" : { "statusCode" : "400", "responseParameters" : { "method.response.header.test-method-response-header" : "'static value'" }, "responseTemplates" : { "application/xml" : "xml 400 response template", "application/json" : "json 400 response template" } }, "2\\d{2}" : { "statusCode" : "200" } }, "requestParameters" : { "integration.request.header.custom_h1" : "method.request.header.h1" }, "passthroughBehavior" : "when_no_match", "type" : "http" } } } }, "components" : { "schemas" : { "RequestBodyModel" : { "required" : [ "name", "price", "type" ], "type" : "object", "properties" : { "id" : { "type" : "integer" }, "type" : { "type" : "string", "enum" : [ "dog", "cat", "fish" ] }, "name" : { "type" : "string" }, "price" : { "maximum" : 500.0, "minimum" : 25.0, "type" : "number" } } }, "ArrayOfError" : { "type" : "array", "items" : { "$ref" : "#/components/schemas/Error" } }, "Error" : { "type" : "object" } } }, "x-amazon-apigateway-request-validators" : { "all" : { "validateRequestParameters" : true, "validateRequestBody" : true }, "params-only" : { "validateRequestParameters" : true, "validateRequestBody" : false } } }
OpenAPI 2.0
{ "swagger" : "2.0", "info" : { "version" : "1.0.0", "title" : "ReqValidators Sample" }, "basePath" : "/v1", "schemes" : [ "https" ], "paths" : { "/validation" : { "get" : { "produces" : [ "application/json", "application/xml" ], "parameters" : [ { "name" : "q1", "in" : "query", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "200 response", "schema" : { "$ref" : "#/definitions/ArrayOfError" }, "headers" : { "test-method-response-header" : { "type" : "string" } } } }, "x-amazon-apigateway-request-validator" : "params-only", "x-amazon-apigateway-integration" : { "httpMethod" : "GET", "uri" : "http://petstore-demo-endpoint.execute-api.com/petstore/pets", "responses" : { "default" : { "statusCode" : "400", "responseParameters" : { "method.response.header.test-method-response-header" : "'static value'" }, "responseTemplates" : { "application/xml" : "xml 400 response template", "application/json" : "json 400 response template" } }, "2\\d{2}" : { "statusCode" : "200" } }, "requestParameters" : { "integration.request.querystring.type" : "method.request.querystring.q1" }, "passthroughBehavior" : "when_no_match", "type" : "http" } }, "post" : { "consumes" : [ "application/json" ], "produces" : [ "application/json", "application/xml" ], "parameters" : [ { "name" : "h1", "in" : "header", "required" : true, "type" : "string" }, { "in" : "body", "name" : "RequestBodyModel", "required" : true, "schema" : { "$ref" : "#/definitions/RequestBodyModel" } } ], "responses" : { "200" : { "description" : "200 response", "schema" : { "$ref" : "#/definitions/ArrayOfError" }, "headers" : { "test-method-response-header" : { "type" : "string" } } } }, "x-amazon-apigateway-request-validator" : "all", "x-amazon-apigateway-integration" : { "httpMethod" : "POST", "uri" : "http://petstore-demo-endpoint.execute-api.com/petstore/pets", "responses" : { "default" : { "statusCode" : "400", "responseParameters" : { "method.response.header.test-method-response-header" : "'static value'" }, "responseTemplates" : { "application/xml" : "xml 400 response template", "application/json" : "json 400 response template" } }, "2\\d{2}" : { "statusCode" : "200" } }, "requestParameters" : { "integration.request.header.custom_h1" : "method.request.header.h1" }, "passthroughBehavior" : "when_no_match", "type" : "http" } } } }, "definitions" : { "RequestBodyModel" : { "type" : "object", "required" : [ "name", "price", "type" ], "properties" : { "id" : { "type" : "integer" }, "type" : { "type" : "string", "enum" : [ "dog", "cat", "fish" ] }, "name" : { "type" : "string" }, "price" : { "type" : "number", "minimum" : 25.0, "maximum" : 500.0 } } }, "ArrayOfError" : { "type" : "array", "items" : { "$ref" : "#/definitions/Error" } }, "Error" : { "type" : "object" } }, "x-amazon-apigateway-request-validators" : { "all" : { "validateRequestParameters" : true, "validateRequestBody" : true }, "params-only" : { "validateRequestParameters" : true, "validateRequestBody" : false } } }