Amazon API Gateway
Manuel du développeur

Configuration des réponses de méthode dans API Gateway

Une réponse de méthode d'API encapsule la sortie d'une demande de méthode d'API que le client recevra. Les données de sortie incluent un code de statut HTTP, certains en-têtes et éventuellement un corps.

Avec les intégrations autres que de proxy, les paramètres et le corps de réponse spécifiés peuvent être mappés à partir des données de la réponse d'intégration associés ou se voir attribuer certaines valeurs statiques en fonction des mappages. Ces mappages sont spécifiés dans la réponse d'intégration. Le mappage peut être une transformation identique qui transfère la réponse d'intégration telle quelle.

Avec une intégration de proxy, API Gateway transfère automatiquement la réponse du serveur principal par le biais de la réponse de méthode. Il n'est pas nécessaire de configurer la réponse de méthode d'API. Toutefois, avec l'intégration de proxy Lambda, la fonction Lambda doit renvoyer un résultat dans ce format de sortie pour qu'API Gateway puisse mapper avec succès la réponse d'intégration à une réponse de méthode.

Par programmation, la configuration de la réponse de méthode consiste à créer une ressource MethodResponse d'API Gateway et à définir les propriétés de statusCode, responseParameters et responseModels.

Lors de la définition des codes de statut pour une méthode d'API, vous devez en choisir par défaut pour gérer une réponse d'intégration quelconque de code de statut inattendu. Il est possible de définir 500 comme valeur par défaut, car cela revient à lancer des réponses non mappées comme une erreur côté serveur. Pour des raisons pédagogiques, la console API Gateway définit la réponse 200 comme valeur par défaut. Mais vous pouvez réinitialiser cette valeur sur la réponse 500.

Pour configurer une réponse de méthode, vous devez avoir créé la demande de méthode.

Configuration du code de statut de réponse de méthode

Le code de statut d'une réponse de méthode définit un type de réponse. Par exemple, les réponses de 200, 400 et 500 indiquent des réponses positives, d'erreur côté client et d'erreur côté serveur, respectivement.

Pour configurer un code de statut de réponse de méthode, définissez la propriété statusCode sur un code de statut HTTP. La commande d'AWS CLI suivante crée une méthode de réponse de 200.

aws apigateway put-method-response \ --region us-west-2 \ --rest-api-id vaz7da96z6 \ --resource-id 6sxz2j \ --http-method GET \ --status-code 200

Configuration des paramètres de réponse de méthode

Les paramètres de méthode de réponse définissent les en-têtes que le client reçoit en réponse à la demande de méthode associée. Les paramètres de réponse spécifient également une cible vers laquelle API Gateway mappe un paramètre de réponse d'intégration, en fonction des mappages prescrits dans la réponse d'intégration de la méthode d'API.

Pour configurer les paramètres de réponse de la méthode, ajoutez au mappage responseParameters des paires clé/valeur MethodResponse au format "{parameter-name}":"{boolean}". La commande d'interface de ligne de commande suivante illustre un exemple de la définition de l'en-tête my-header, de la variable de chemin d'accès petId et du paramètre de requête query en tant que mappages cibles :

aws apigateway put-method-response \ --region us-west-2 \ --rest-api-id vaz7da96z6 \ --resource-id 6sxz2j \ --http-method GET \ --status-code 200 \ --response-parameters method.request.header.my-header=false,method.request.path.petId=true,method.request.querystring.query=false

Configuration des modèles de réponse de méthode

Un modèle de réponse de méthode définit un format pour le corps de la réponse de méthode. Avant de configurer le modèle de réponse, vous devez d'abord créer le modèle dans API Gateway. Pour cela, vous pouvez appeler la commande create-model. L'exemple suivant montre comment créer un modèle PetStorePet pour décrire le corps de la réponse dans la demande de méthode GET /pets/{petId}.

aws apigateway create-model \ --region us-west-2 \ --rest-api-id vaz7da96z6 \ --content-type application/json \ --name PetStorePet \ --schema '{ \ "$schema": "http://json-schema.org/draft-04/schema#", \ "title": "PetStorePet", \ "type": "object", \ "properties": { \ "id": { "type": "number" }, \ "type": { "type": "string" }, \ "price": { "type": "number" } \ } \ }'

Le résultat est créé en tant que ressource Model d'API Gateway.

Pour configurer les modèles de réponse de méthode afin de définir le format de la charge utile, ajoutez la paire clé-valeur "application/json":"PetStorePet" au mappage requestModels de la ressource MethodResponse. La commande de l'AWS CLI put-method-response montre comment procéder :

aws apigateway put-method-response \ --region us-west-2 \ --rest-api-id vaz7da96z6 \ --resource-id 6sxz2j \ --http-method GET \ --status-code 200 \ --request-parameters method.request.header.my-header=false,method.request.path.petId=true,method.request.querystring.query=false --request-models '{"application/json":"PetStorePet"}'

La configuration d'un modèle de réponse de méthode est nécessaire lorsque vous générez un kit SDK fortement typé pour l'API. Cela permet de s'assurer que la sortie est lancée dans une classe correspondante en Java ou Objective-C. Dans d'autres cas, la configuration d'un modèle est facultative.