Menerima respons API dengan payload terkompresi di API Gateway - Amazon API Gateway

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menerima respons API dengan payload terkompresi di API Gateway

Saat membuat permintaan pada API yang mendukung kompresi, klien dapat memilih untuk menerima muatan respons terkompresi dari format tertentu dengan menentukan Accept-Encoding header dengan pengkodean konten yang didukung.

API Gateway hanya memampatkan payload respons jika kondisi berikut terpenuhi:

  • Permintaan masuk memiliki Accept-Encoding header dengan pengkodean dan format konten yang didukung.

    catatan

    Jika header tidak disetel, nilai default adalah * seperti yang didefinisikan dalam RFC 7231. Dalam kasus seperti itu, API Gateway tidak memampatkan muatan. Beberapa browser atau klien dapat menambahkan Accept-Encoding (misalnya,Accept-Encoding:gzip, deflate, br) secara otomatis ke permintaan yang diaktifkan kompresi. Ini dapat mengaktifkan kompresi payload di API Gateway. Tanpa spesifikasi eksplisit dari nilai Accept-Encoding header yang didukung, API Gateway tidak memampatkan payload.

  • minimumCompressionSizeIni diatur pada API untuk mengaktifkan kompresi.

  • Respons integrasi tidak memiliki Content-Encoding header.

  • Ukuran muatan respons integrasi, setelah templat pemetaan yang berlaku diterapkan, lebih besar dari atau sama dengan nilai yang ditentukanminimumCompressionSize.

API Gateway menerapkan template pemetaan apa pun yang dikonfigurasi untuk respons integrasi sebelum mengompresi payload. Jika respons integrasi berisi Content-Encoding header, API Gateway mengasumsikan bahwa payload respons integrasi sudah dikompresi dan melewatkan pemrosesan kompresi.

Contohnya adalah contoh PetStore API dan permintaan berikut:

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

Backend merespons permintaan dengan muatan JSON yang tidak terkompresi yang mirip dengan yang berikut ini:

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

Untuk menerima output ini sebagai payload terkompresi, klien API Anda dapat mengirimkan permintaan sebagai berikut:

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

Klien menerima respons dengan Content-Encoding header dan muatan yang dikodekan GZIP yang mirip dengan berikut ini:

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

Ketika payload respons dikompresi, hanya ukuran data terkompresi yang ditagih untuk transfer data.