Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jenis media biner untuk REST APIs di API Gateway
Di API Gateway, API permintaan dan respons memiliki teks atau muatan biner. Payload teks adalah string UTF-8
JSON -encoded. Payload biner adalah apa pun selain payload teks. Payload biner dapat berupa, misalnya, JPEG file, GZip file, atau XML file. APIKonfigurasi yang diperlukan untuk mendukung media biner tergantung pada apakah Anda API menggunakan integrasi proxy atau non-proxy.
AWS Lambda integrasi proxy
Untuk menangani payload biner untuk integrasi AWS Lambda proxy, Anda harus base64-menyandikan respons fungsi Anda. Anda juga harus mengkonfigurasi binaryMediaTypesuntuk AndaAPI. APIbinaryMediaTypes
Konfigurasi Anda adalah daftar jenis konten yang Anda API perlakukan sebagai data biner. Contoh jenis media biner termasuk image/png
atauapplication/octet-stream
. Anda dapat menggunakan karakter wildcard (*
) untuk mencakup beberapa jenis media. Misalnya, */*
termasuk semua jenis konten.
Untuk kode sampel, lihat Kembalikan media biner dari integrasi proxy Lambda di Gateway API.
Integrasi non-proxy
Untuk menangani muatan biner untuk integrasi non-proxy, Anda menambahkan jenis media ke binaryMediaTypesdaftar sumber daya. RestApi
APIbinaryMediaTypes
Konfigurasi Anda adalah daftar jenis konten yang Anda API perlakukan sebagai data biner. Atau, Anda dapat mengatur contentHandlingproperti pada Integrasi dan IntegrationResponsesumber daya. contentHandling
Nilainya bisaCONVERT_TO_BINARY
,CONVERT_TO_TEXT
, atau tidak terdefinisi.
Bergantung pada contentHandling
nilainya, dan apakah header respons atau Content-Type
header permintaan yang masuk cocok dengan entri dalam binaryMediaTypes
daftar, API Gateway dapat menyandikan byte biner mentah sebagai string yang dikodekan base64, memecahkan kode string yang dikodekan base64 kembali ke byte mentahnya, atau meneruskan isi tanpa modifikasi. Accept
Anda harus mengkonfigurasi API sebagai berikut untuk mendukung muatan biner untuk Anda API di API Gateway:
-
Tambahkan jenis media biner yang diinginkan ke
binaryMediaTypes
daftar pada RestApisumber daya. Jika properti ini dancontentHandling
properti tidak didefinisikan, muatan ditangani sebagai UTF -8 string yang dikodekan. JSON -
Alamat
contentHandling
properti sumber daya Integrasi.-
Agar payload permintaan dikonversi dari string yang dikodekan base64 ke gumpalan binernya, setel properti ke.
CONVERT_TO_BINARY
-
Agar payload permintaan dikonversi dari gumpalan biner ke string yang dikodekan base64, setel properti ke.
CONVERT_TO_TEXT
-
Untuk meneruskan muatan tanpa modifikasi, biarkan properti tidak terdefinisi. Untuk meneruskan payload biner tanpa modifikasi, Anda juga harus memastikan bahwa entri tersebut
Content-Type
cocok dengan salah satubinaryMediaTypes
entri, dan perilaku passthrough diaktifkan untuk entri. API
-
-
Atur
contentHandling
properti sumber IntegrationResponsedaya.contentHandling
Properti,Accept
header dalam permintaan klien, danbinaryMediaTypes
gabungan Anda API menentukan cara API Gateway menangani konversi jenis konten. Lihat perinciannya di Konversi jenis konten di API Gateway.
penting
Saat permintaan berisi beberapa jenis media di Accept
tajuknya, API Gateway hanya menghormati jenis Accept
media pertama. Jika Anda tidak dapat mengontrol urutan jenis Accept
media dan jenis media konten biner Anda bukan yang pertama dalam daftar, tambahkan jenis Accept
media pertama dalam binaryMediaTypes
daftar AndaAPI. APIGateway menangani semua jenis konten dalam daftar ini sebagai biner.
Misalnya, untuk mengirim JPEG file menggunakan <img>
elemen di browser, browser mungkin mengirim Accept:image/webp,image/*,*/*;q=0.8
permintaan. Dengan menambahkan image/webp
ke binaryMediaTypes
daftar, titik akhir menerima JPEG file sebagai biner.
Untuk informasi rinci tentang cara API Gateway menangani teks dan muatan biner, lihatKonversi jenis konten di API Gateway.