Empfangen Sie eine API Antwort mit einer komprimierten Nutzlast in Gateway API - APIAmazon-Gateway

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Empfangen Sie eine API Antwort mit einer komprimierten Nutzlast in Gateway API

Wenn der Client eine Anfrage für eine aktivierte Komprimierung stellt, kann er wählenAPI, ob er eine komprimierte Antwortnutzlast eines bestimmten Formats erhalten möchte, indem er einen Accept-Encoding Header mit unterstützter Inhaltscodierung angibt.

APIGateway komprimiert die Antwortnutzlast nur, wenn die folgenden Bedingungen erfüllt sind:

  • Der Accept-Encoding-Header der eingehenden Anforderung weist eine unterstützte Inhaltscodierung und ein entsprechendes Format auf.

    Anmerkung

    Wenn der Header nicht gesetzt ist, entspricht der Standardwert der Definition in * RFC 7231. In einem solchen Fall komprimiert API Gateway die Nutzlast nicht. Einige Browser oder Clients fügen komprimierungsfähigen Anforderungen möglicherweise automatisch Accept-Encoding (z. B. Accept-Encoding:gzip, deflate, br) hinzu. Dadurch kann die Payload-Komprimierung in API Gateway aktiviert werden. Ohne eine explizite Angabe der unterstützten Accept-Encoding Header-Werte komprimiert API Gateway die Payload nicht.

  • Das minimumCompressionSize ist auf der eingestellt, API um die Komprimierung zu aktivieren.

  • Die Integrationsantwort enthält keinen Content-Encoding-Header.

  • Die Größe einer Integrationsantwortnutzlast nach Anwendung der geltenden Zuweisungsvorlage ist größer als oder gleich dem angegebenen minimumCompressionSize-Wert.

APIGateway wendet jede Zuordnungsvorlage an, die für die Integrationsantwort konfiguriert ist, bevor die Nutzlast komprimiert wird. Wenn die Integrationsantwort einen Content-Encoding Header enthält, geht API Gateway davon aus, dass die Nutzlast der Integrationsantwort bereits komprimiert ist, und überspringt die Komprimierungsverarbeitung.

Ein Beispiel ist das PetStore API Beispiel und die folgende Anfrage:

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

Das Backend beantwortet die Anfrage mit einer unkomprimierten JSON Nutzlast, die der folgenden ähnelt:

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

Um diese Ausgabe als komprimierte Nutzlast zu erhalten, kann Ihr API Kunde eine Anfrage wie folgt einreichen:

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

Der Client erhält die Antwort mit einem Content-Encoding Header und einer GZIP -codierten Payload, die dem Folgenden ähneln:

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

Wird die Antwortnutzlast komprimiert, wird nur die komprimierte Datengröße für die Datenübertragung in Rechnung gestellt.