Comment mapper les codes d'état de réponse pour les intégrations de la passerelle API dans les API HTTP ?

Lecture de 3 minute(s)
0

Quelles sont les différences entre les versions 1.0 et 2.0 de la charge utile ? Comment mapper les codes d'état renvoyés par les API HTTP dans Amazon API Gateway (la passerelle API) ? -ou- Comment mapper les codes d'état dans les API HTTP ?

Résolution

Lorsque vous souhaitez remplacer les codes d'état de réponse de votre applicatif (backend), utilisez des modèles de la configuration de la passerelle API ou des expressions régulières pour mapper les codes d'état. Vous pouvez le faire dans le cadre d'intégrations proxy et non proxy avec l'API HTTP.

Utilisation des API HTTP

La conception des API HTTP est différente de celle des API REST. Les API HTTP sont intégrées par défaut par proxy et renvoient la même réponse. Contrairement aux API REST, les API HTTP fournissent deux versions de format de charge utile à utiliser avec l'intégration Lambda. Pour les versions des formats de charge utile 1.0 et 2.0, il existe des formats de réponse de fonction Lambda associés.

Lorsque le format de charge utile version 2.0 est utilisé, si la fonction Lambda ne transmet pas explicitement le code d'état dans une réponse JSON valide, la passerelle API part du principe suivant :

  • IsBase64Encoded est faux
  • Le code d'état est 200
  • le type de contenu est application/json
  • le corps est la réponse d'une fonction Lambda

Dans l'exemple précédent, l'API HTTP ne renvoie aucune erreur, mais transmet le code d'état supposé 200.

Lorsque le format de charge utile version 1.0 est utilisé, l'intégration Lambda doit renvoyer une réponse au format suivant. La passerelle API ne fait aucune hypothèse quant à la réponse et renvoie une erreur 500.

{
    "isBase64Encoded": true|false,
    "statusCode": httpStatusCode,
    "headers": { "headername": "headervalue", ... },
    "multiValueHeaders": { "headername": ["headervalue", "headervalue2", ...], ... },
    "body": "..."
}

Codes d'état de la configuration

Pour mapper le code d'état à une valeur statique en fonction de la clé de réponse de l’applicatif renvoyée :

  1. Accédez aux intégrations configurées dans l'API HTTP.
  2. Choisissez l'itinéraire d'intégration à modifier. Choisissez Gérer l'intégration. Accédez au configuration des paramètres, puis choisissez Créer une configuration de paramètres.
  3. Définissez le type de la configuration sur Réponse (en fonction d'un code d'état). Définissez également le code d'état de réponse car la configuration des paramètres doit être appliqué aux réponses d'intégration qui correspondent à ce code d'état.
  4. Choisissez Ajouter un nouveau configuration.
  5. Sous Paramètre à modifier, choisir statusCode. Définissez le type de modification sur Remplacer.
  6. Définissez la valeur sur la Valeur statique.
    Note: Cette valeur doit être envoyée au client.
  7. Choisissez Créer.

Informations connexes

Utilisation des modèles et les matrices de configuration

Transformation des requêtes et des réponses d'API

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans