Recevez une API réponse avec une charge utile compressée dans Gateway API - APIPasserelle Amazon

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.

Recevez une API réponse avec une charge utile compressée dans Gateway API

Lorsqu'il fait une demande sur un support compatible avec la compressionAPI, le client peut choisir de recevoir une charge utile de réponse compressée d'un format spécifique en spécifiant un Accept-Encoding en-tête avec un codage de contenu pris en charge.

APIGateway ne compresse la charge utile de réponse que lorsque les conditions suivantes sont satisfaites :

  • La demande entrante a l'en-tête Accept-Encoding avec un format et un codage de contenu pris en charge.

    Note

    Si l'en-tête n'est pas défini, la valeur par défaut est telle * que définie dans RFC7231. Dans ce cas, API Gateway ne compresse pas la charge utile. Certains navigateurs ou clients peuvent ajouter Accept-Encoding (par exemple, Accept-Encoding:gzip, deflate, br) automatiquement aux requêtes dont la compression est activée. Cela peut activer la compression de la charge utile dans API Gateway. Sans spécification explicite des valeurs d'Accept-Encodingen-tête prises en charge, API Gateway ne compresse pas la charge utile.

  • Le minimumCompressionSize est réglé sur le API pour activer la compression.

  • La réponse d'intégration ne dispose pas d'en-tête Content-Encoding.

  • La taille de la charge utile d'une réponse d'intégration corps après l'application du modèle de mappage approprié est supérieure ou égale à la valeur minimumCompressionSize spécifiée.

APIGateway applique tout modèle de mappage configuré pour la réponse d'intégration avant de compresser la charge utile. Si la réponse d'intégration contient un Content-Encoding en-tête, API Gateway suppose que la charge utile de la réponse d'intégration est déjà compressée et ignore le traitement de compression.

L' PetStore APIexemple et la demande suivante en sont un exemple :

GET /pets Host: {petstore-api-id}.execute-api.{region}.amazonaws.com Accept: application/json

Le backend répond à la demande avec une JSON charge utile non compressée similaire à ce qui suit :

200 OK [ { "id": 1, "type": "dog", "price": 249.99 }, { "id": 2, "type": "cat", "price": 124.99 }, { "id": 3, "type": "fish", "price": 0.99 } ]

Pour recevoir cette sortie sous forme de charge utile compressée, votre API client peut envoyer une demande comme suit :

GET /pets Host: {petstore-api-id}.execute-api.{region}.amazonaws.com Accept-Encoding:gzip

Le client reçoit la réponse avec un Content-Encoding en-tête et une charge utile GZIP codée similaires à ce qui suit :

200 OK Content-Encoding:gzip ... ���RP� J�)JV �:P^IeA*������+(�L �X�YZ�ku0L0B7!9��C#�&����Y��a���^�X

Lorsque la charge utile de la réponse est compressée, seule la taille des données compressées est facturée pour le transfert de données.