Menerima API tanggapan dengan muatan terkompresi di Gateway API - APIGerbang Amazon

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

Menerima API tanggapan dengan muatan terkompresi di Gateway API

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

APIGateway hanya memampatkan muatan respons ketika 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 RFC7231. 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.

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

Contohnya adalah PetStore API contoh dan permintaan berikut:

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

Backend merespons permintaan dengan JSON muatan 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 muatan terkompresi, API klien Anda dapat mengirimkan permintaan sebagai berikut:

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

Klien menerima respon dengan Content-Encoding header dan GZIP -encoded payload 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.