Ricevi una API risposta con un payload compresso in Gateway API - Amazon API Gateway

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ricevi una API risposta con un payload compresso in Gateway API

Quando si effettua una richiesta su un dispositivo abilitato alla compressioneAPI, il client può scegliere di ricevere un payload di risposta compressa in un formato specifico specificando un'intestazione con una Accept-Encoding codifica del contenuto supportata.

APIGateway comprime il payload di risposta solo quando sono soddisfatte le seguenti condizioni:

  • La richiesta in ingresso ha l'intestazione Accept-Encoding con una codifica di contenuto e un formato supportati.

    Nota

    Se l'intestazione non è impostata, il valore predefinito è quello * definito in 7231. RFC In tal caso, API Gateway non comprime il payload. Alcuni browser o client possono aggiungere Accept-Encoding (ad esempio, Accept-Encoding:gzip, deflate, br) automaticamente alle richieste abilitate per la compressione. Ciò può attivare la compressione del payload in Gateway. API Senza una specifica esplicita dei valori di Accept-Encoding intestazione supportati, API Gateway non comprime il payload.

  • minimumCompressionSizeÈ impostato su per abilitare la compressione. API

  • La risposta di integrazione non ha un'intestazione Content-Encoding.

  • La dimensione di un payload di risposta di integrazione, dopo l'applicazione del modello di mappatura applicabile, è maggiore o uguale al valore di minimumCompressionSize specificato.

APIGateway applica qualsiasi modello di mappatura configurato per la risposta di integrazione prima di comprimere il payload. Se la risposta di integrazione contiene un'Content-Encodingintestazione, API Gateway presume che il payload della risposta di integrazione sia già compresso e salta l'elaborazione della compressione.

Un esempio è l' PetStore APIesempio e la seguente richiesta:

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

Il backend risponde alla richiesta con un JSON payload non compresso simile al seguente:

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

Per ricevere questo output come payload compresso, il API client può inviare una richiesta come segue:

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

Il client riceve la risposta con un'Content-Encodingintestazione e un payload con GZIP codifica simili ai seguenti:

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

Quando il payload di risposta è compresso, solo la dimensione dei dati compressi viene fatturata per il trasferimento dati.