

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
<a name="api-gateway-payload-encodings-configure-with-control-service-api"></a>

Tugas berikut menunjukkan cara mengaktifkan dukungan biner menggunakan panggilan API Gateway REST API.

**Topics**
+ [Menambahkan dan memperbarui tipe media biner yang didukung ke API](#api-gateway-payload-encodings-setup-with-api-set-encodings-map)
+ [Konfigurasikan konversi payload permintaan](#api-gateway-payload-encodings-setup-with-api-set-integration-request-encoding)
+ [Konfigurasikan konversi payload respons](#api-gateway-payload-encodings-setup-with-api-set-integration-response-encoding)
+ [Ubah data biner menjadi data teks](#api-gateway-payload-encodings-convert-binary-to-string)
+ [Mengkonversi data teks ke payload biner](#api-gateway-payload-encodings-convert-string-to-binary)
+ [Melewati muatan biner](#api-gateway-payload-encodings-pass-binary-as-is)

## Menambahkan dan memperbarui tipe media biner yang didukung ke API
<a name="api-gateway-payload-encodings-setup-with-api-set-encodings-map"></a>

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
<a name="api-gateway-payload-encodings-setup-with-api-set-integration-request-encoding"></a>

Jika titik akhir membutuhkan input biner, atur `contentHandling` properti `Integration` sumber daya ke`CONVERT_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
<a name="api-gateway-payload-encodings-setup-with-api-set-integration-response-encoding"></a>

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
<a name="api-gateway-payload-encodings-convert-binary-to-string"></a>

Untuk mengirim data biner sebagai properti JSON dari input ke AWS Lambda atau Kinesis melalui API Gateway, lakukan hal berikut: 

1. Aktifkan dukungan payload biner API dengan menambahkan jenis media biner baru `application/octet-stream` ke `binaryMediaTypes` daftar API. 

   ```
   PATCH /restapis/<restapi_id>
   
   {
     "patchOperations" : [ {
       "op" : "add",
       "path" : "/binaryMediaTypes/application~1octet-stream"
     } 
    ]
   }
   ```

1. Tetapkan `CONVERT_TO_TEXT` pada `contentHandling` properti `Integration` sumber daya dan sediakan template pemetaan untuk menetapkan string data biner yang dikodekan base64 ke properti JSON. Dalam contoh berikut, properti JSON adalah `body` dan `$input.body` memegang 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
<a name="api-gateway-payload-encodings-convert-string-to-binary"></a>

Misalkan fungsi Lambda mengembalikan file gambar sebagai string yang dikodekan base64. Untuk meneruskan output biner ini ke klien melalui API Gateway, lakukan hal berikut: 

1. Perbarui `binaryMediaTypes` daftar API dengan menambahkan jenis media biner`application/octet-stream`, jika belum ada dalam daftar. 

   ```
   PATCH /restapis/<restapi_id>
   
   {
     "patchOperations" : [ {
       "op" : "add",
       "path" : "/binaryMediaTypes/application~1octet-stream",
     }]
   }
   ```

1.  Setel `contentHandling` properti pada `Integration` sumber daya ke`CONVERT_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
<a name="api-gateway-payload-encodings-pass-binary-as-is"></a>

 Untuk menyimpan gambar di bucket Amazon S3 menggunakan API Gateway, lakukan hal berikut: 

1. Perbarui `binaryMediaTypes` daftar API dengan menambahkan jenis media biner`application/octet-stream`, jika belum ada dalam daftar. 

   ```
   PATCH /restapis/<restapi_id>
   
   {
     "patchOperations" : [ {
       "op" : "add",
       "path" : "/binaryMediaTypes/application~1octet-stream"
     }
    ]
   }
   ```

1. Pada `contentHandling` properti sumber `Integration` daya, atur`CONVERT_TO_BINARY`. Tetapkan `WHEN_NO_MATCH` sebagai nilai `passthroughBehavior` properti 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"
       }
     ]
   }
   ```