Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengaktifkan dukungan biner menggunakan API Gateway REST API
Tugas berikut menunjukkan cara mengaktifkan dukungan biner menggunakan panggilan API Gateway REST API.
Topik
Menambahkan dan memperbarui tipe media biner yang didukung ke API
Untuk mengaktifkan API Gateway untuk mendukung tipe media biner baru, Anda harus menambahkan jenis media biner ke binaryMediaTypes daftar RestApi sumber daya. Misalnya, agar API Gateway menangani gambar JPEG, kirimkan PATCH permintaan ke RestApi sumber daya:
PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/image~1jpeg" } ] }
Spesifikasi tipe MIME image/jpeg yang merupakan bagian dari nilai path properti diloloskan sebagai. image~1jpeg
Untuk memperbarui jenis media biner yang didukung, ganti atau hapus jenis media dari binaryMediaTypes daftar RestApi sumber daya. Misalnya, untuk mengubah dukungan biner dari file JPEG ke byte mentah, kirimkan PATCH permintaan ke RestApi sumber daya, sebagai berikut:
PATCH /restapis/<restapi_id> { "patchOperations" : [{ "op" : "replace", "path" : "/binaryMediaTypes/image~1jpeg", "value" : "application/octet-stream" }, { "op" : "remove", "path" : "/binaryMediaTypes/image~1jpeg" }] }
Konfigurasikan konversi payload permintaan
Jika titik akhir membutuhkan input biner, atur contentHandling properti Integration sumber daya keCONVERT_TO_BINARY. Untuk melakukannya, kirimkan PATCH permintaan, sebagai berikut:
PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY" }] }
Konfigurasikan konversi payload respons
Jika klien menerima hasilnya sebagai gumpalan biner alih-alih muatan yang dikodekan base64 yang dikembalikan dari titik akhir, setel properti sumber daya ke. contentHandling IntegrationResponse CONVERT_TO_BINARY Untuk melakukan ini, kirimkan PATCH permintaan, sebagai berikut:
PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration/responses/<status_code> { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY" }] }
Ubah data biner menjadi data teks
Untuk mengirim data biner sebagai properti JSON dari input ke AWS Lambda atau Kinesis melalui API Gateway, lakukan hal berikut:
-
Aktifkan dukungan payload biner API dengan menambahkan jenis media biner baru
application/octet-streamkebinaryMediaTypesdaftar API.PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/application~1octet-stream" } ] } -
Tetapkan
CONVERT_TO_TEXTpadacontentHandlingpropertiIntegrationsumber daya dan sediakan template pemetaan untuk menetapkan string data biner yang dikodekan base64 ke properti JSON. Dalam contoh berikut, properti JSON adalahbodydan$input.bodymemegang string yang dikodekan base64.PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_TEXT" }, { "op" : "add", "path" : "/requestTemplates/application~1octet-stream", "value" : "{\"body\": \"$input.body\"}" } ] }
Mengkonversi data teks ke payload biner
Misalkan fungsi Lambda mengembalikan file gambar sebagai string yang dikodekan base64. Untuk meneruskan output biner ini ke klien melalui API Gateway, lakukan hal berikut:
-
Perbarui
binaryMediaTypesdaftar API dengan menambahkan jenis media binerapplication/octet-stream, jika belum ada dalam daftar.PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/application~1octet-stream", }] } -
Setel
contentHandlingproperti padaIntegrationsumber daya keCONVERT_TO_BINARY. Jangan mendefinisikan template pemetaan. Jika Anda tidak mendefinisikan template pemetaan, API Gateway akan memanggil template passthrough untuk mengembalikan blob biner yang diterjemahkan base64 sebagai file gambar ke klien.PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration/responses/<status_code> { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY" } ] }
Melewati muatan biner
Untuk menyimpan gambar di bucket Amazon S3 menggunakan API Gateway, lakukan hal berikut:
-
Perbarui
binaryMediaTypesdaftar API dengan menambahkan jenis media binerapplication/octet-stream, jika belum ada dalam daftar.PATCH /restapis/<restapi_id> { "patchOperations" : [ { "op" : "add", "path" : "/binaryMediaTypes/application~1octet-stream" } ] } -
Pada
contentHandlingproperti sumberIntegrationdaya, aturCONVERT_TO_BINARY. TetapkanWHEN_NO_MATCHsebagai nilaipassthroughBehaviorproperti tanpa mendefinisikan template pemetaan. Hal ini memungkinkan API Gateway untuk memanggil template passthrough.PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration { "patchOperations" : [ { "op" : "replace", "path" : "/contentHandling", "value" : "CONVERT_TO_BINARY" }, { "op" : "replace", "path" : "/passthroughBehaviors", "value" : "WHEN_NO_MATCH" } ] }