

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

# Tutorial: Membuat REST API dengan integrasi non-proxy HTTP
<a name="api-gateway-create-api-step-by-step"></a>

 Dalam tutorial ini, Anda membuat API dari awal menggunakan konsol Amazon API Gateway. Anda dapat menganggap konsol sebagai studio desain API dan menggunakannya untuk cakupan fitur API, bereksperimen dengan perilakunya, membangun API, dan menerapkan API Anda secara bertahap. 

**Topics**
+ [Buat API dengan integrasi kustom HTTP](#api-gateway-create-resource-and-methods)
+ [(Opsional) Parameter permintaan peta](#api-gateway-create-resources-and-methods-next-steps)

## Buat API dengan integrasi kustom HTTP
<a name="api-gateway-create-resource-and-methods"></a>

 Bagian ini memandu Anda melalui langkah-langkah untuk membuat sumber daya, mengekspos metode pada sumber daya, mengonfigurasi metode untuk mencapai perilaku API yang diinginkan, dan untuk menguji dan menerapkan API.

Pada langkah ini, Anda membuat API kosong. Dalam langkah-langkah berikut, Anda membuat sumber daya dan metode untuk menghubungkan API Anda ke `http://petstore-demo-endpoint.execute-api.com/petstore/pets` titik akhir, menggunakan integrasi HTTP non-proxy. 

**Untuk membuat API**

1. Masuk ke konsol API Gateway di [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Jika ini adalah pertama kalinya Anda menggunakan API Gateway, Anda akan melihat halaman yang memperkenalkan Anda ke fitur layanan. Di bawah **REST API**, pilih **Build**. **Saat munculan **Create Example API** muncul, pilih OK.**

   Jika ini bukan pertama kalinya Anda menggunakan API Gateway, pilih **Buat API**. Di bawah **REST API**, pilih **Build**.

1.  Untuk **nama API**, masukkan**HTTPNonProxyAPI**.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi.

1. Tetap tetapkan **jenis endpoint API** ke **Regional**.

1. Untuk **jenis alamat IP**, pilih **IPv4**.

1. Pilih **Buat API**.

Pohon **Resources** menunjukkan sumber daya root (`/`) tanpa metode apa pun. Dalam latihan ini, kita akan membangun API dengan integrasi kustom HTTP dari PetStore situs web (http://petstore-demo-endpoint.execute-api. com/petstore/pets.) Untuk tujuan ilustrasi, kami akan membuat `/pets` sumber daya sebagai anak dari root dan mengekspos metode GET pada sumber daya ini bagi klien untuk mengambil daftar item Hewan Peliharaan yang tersedia dari situs web. PetStore 

**Untuk membuat sumber daya /pets**

1. Pilih **Buat sumber daya**.

1. Matikan **sumber daya Proxy**.

1. Pertahankan **jalur Sumber Daya** sebagai`/`.

1. Untuk **Nama sumber daya**, masukkan **pets**.

1. Tetap nonaktifkan **CORS (Cross Origin Resource Sharing)**.

1. Pilih **Buat sumber daya**.

Pada langkah ini, Anda membuat `GET` metode pada sumber daya **/pets**. `GET`Metode ini terintegrasi dengan situs `http://petstore-demo-endpoint.execute-api.com/petstore/pets` web. Opsi lain untuk metode API termasuk yang berikut:
+ **POST**, terutama digunakan untuk membuat sumber daya anak.
+ **PUT**, terutama digunakan untuk memperbarui sumber daya yang ada (dan, meskipun tidak disarankan, dapat digunakan untuk membuat sumber daya anak).
+ **DELETE**, digunakan untuk menghapus sumber daya.
+ **PATCH**, digunakan untuk memperbarui sumber daya.
+ **HEAD**, terutama digunakan dalam skenario pengujian. Ini sama dengan GET tetapi tidak mengembalikan representasi sumber daya.
+ **OPTIONS**, yang dapat digunakan oleh penelepon untuk mendapatkan informasi tentang opsi komunikasi yang tersedia untuk layanan target.

 Untuk **metode HTTP** permintaan integrasi, Anda harus memilih salah satu yang didukung oleh backend. Untuk `HTTP` atau`Mock integration`, masuk akal bahwa permintaan metode dan permintaan integrasi menggunakan kata kerja HTTP yang sama. Untuk jenis integrasi lainnya, permintaan metode kemungkinan akan menggunakan kata kerja HTTP yang berbeda dari permintaan integrasi. Misalnya, untuk memanggil fungsi Lambda, permintaan integrasi harus digunakan `POST` untuk memanggil fungsi, sedangkan permintaan metode dapat menggunakan kata kerja HTTP apa pun tergantung pada logika fungsi Lambda. 

**Untuk membuat `GET` metode pada sumber daya **/pets****

1. Pilih sumber daya **/pets**.

1. Pilih **metode Buat**.

1. Untuk **tipe Metode**, pilih **GET**.

1. Untuk **jenis Integrasi**, pilih **Integrasi HTTP**.

1. Matikan **integrasi proxy HTTP**.

1. Untuk **metode HTTP**, pilih **GET**.

1. Untuk **URL Endpoint**, masukkan**http://petstore-demo-endpoint.execute-api.com/petstore/pets**.

    PetStore Situs web ini memungkinkan Anda untuk mengambil daftar `Pet` item berdasarkan jenis hewan peliharaan, seperti “Dog” atau “Cat”, pada halaman tertentu.

1. Untuk **penanganan Konten**, pilih **Passthrough**.

1. Pilih **parameter string kueri URL**.

   Situs PetStore web menggunakan parameter string `type` dan `page` kueri untuk menerima input. Anda menambahkan parameter string kueri ke permintaan metode dan memetakannya ke dalam parameter string kueri yang sesuai dari permintaan integrasi. 

1. Untuk menambahkan parameter string kueri, lakukan hal berikut:

   1. Pilih **Tambahkan string kueri**.

   1. Untuk **Nama**, masukkan **type**

   1. Tetap **Diperlukan** dan **Caching** dimatikan.

   Ulangi langkah sebelumnya untuk membuat string kueri tambahan dengan nama**page**.

1. Pilih **metode Buat**.

Klien sekarang dapat menyediakan jenis hewan peliharaan dan nomor halaman sebagai parameter string kueri saat mengirimkan permintaan. Parameter input ini harus dipetakan ke dalam parameter string kueri integrasi untuk meneruskan nilai input ke PetStore situs web kami di backend.

**Untuk memetakan parameter input ke permintaan Integrasi**

1. Pada tab **Permintaan integrasi**, di bawah **Pengaturan permintaan integrasi**, pilih **Edit**.

1. Pilih **parameter string kueri URL**, lalu lakukan hal berikut: 

   1. Pilih **Tambahkan parameter string kueri**.

   1. Untuk **Nama**, masukkan **type**.

   1. Untuk **Dipetakan dari**, masukkan **method.request.querystring.type**

   1. Tetap **caching** dimatikan. 

   1. Pilih **Tambahkan parameter string kueri**.

   1. Untuk **Nama**, masukkan **page**.

   1. Untuk **Dipetakan dari**, masukkan **method.request.querystring.page**

   1. Tetap **caching** dimatikan. 

1. Pilih **Simpan**.

**Untuk menguji API**

1. Pilih tab **Uji**. Anda mungkin perlu memilih tombol panah kanan untuk menampilkan tab.

1. Untuk **string Query**, masukkan**type=Dog&page=2**.

1. Pilih **Uji**.

    Hasilnya mirip dengan yang berikut:

      
![\[Test-invoke GET pada hasil metode hewan peliharaan\]](http://docs.aws.amazon.com/id_id/apigateway/latest/developerguide/images/api-gateway-create-api-step-by-step-test-invoke-get-on-pets-result-new-console.png)

    Sekarang setelah pengujian berhasil, kami dapat menerapkan API untuk membuatnya tersedia untuk umum. 

1. Pilih **Deploy API**.

1. Untuk **Stage**, pilih **New stage**.

1. Untuk **nama Panggung**, masukkan**Prod**.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi.

1. Pilih **Deploy**.

1.  (Opsional) Di bawah **detail Tahap**, untuk **Invoke URL**, Anda dapat memilih ikon salin untuk menyalin URL pemanggilan API Anda. Anda dapat menggunakan ini dengan alat seperti [Postman](https://www.postman.com) dan [cURL](https://curl.se/) untuk menguji API Anda.

 Jika Anda menggunakan SDK untuk membuat klien, Anda dapat memanggil metode yang diekspos oleh SDK untuk menandatangani permintaan. Untuk detail implementasi, lihat [AWS SDK](https://aws.amazon.com/developer/tools/) yang Anda pilih. 

**catatan**  
 Saat perubahan dilakukan pada API Anda, Anda harus menerapkan ulang API agar fitur baru atau yang diperbarui tersedia sebelum menjalankan URL permintaan lagi. 

## (Opsional) Parameter permintaan peta
<a name="api-gateway-create-resources-and-methods-next-steps"></a>

### Parameter permintaan peta untuk API Gateway API
<a name="getting-started-mappings"></a>

 Tutorial ini menunjukkan cara membuat parameter jalur `{petId}` pada permintaan metode API untuk menentukan ID item, memetakannya ke parameter `{id}` jalur di URL permintaan integrasi, dan mengirim permintaan ke titik akhir HTTP.

**catatan**  
 Jika Anda memasukkan huruf yang salah, seperti huruf kecil, bukan huruf besar, ini akan menyebabkan kesalahan nanti dalam penelusuran. 

#### Langkah 1: Buat sumber daya
<a name="getting-started-mappings-add-resources"></a>

Pada langkah ini, Anda membuat sumber daya dengan parameter jalur \$1PeTiD\$1.

**Untuk membuat sumber daya \$1PeTID\$1**

1. Pilih sumber daya **/pets**, lalu pilih **Create resource**.

1. Matikan **sumber daya Proxy**.

1. Untuk **jalur Sumber Daya**, pilih **/pets/**.

1. Untuk **Nama sumber daya**, masukkan **\$1petId\$1**.

    Gunakan kurawal kurawal (`{ }`) di sekitar `petId` sehingga **/pets/ \$1PeTiD**\$1 ditampilkan.

1. Tetap nonaktifkan **CORS (Cross Origin Resource Sharing)**.

1. Pilih **Buat sumber daya**.

#### Langkah 2: Buat dan uji metode
<a name="getting-started-mappings-set-methods"></a>

 Pada langkah ini, Anda membuat `GET` metode dengan parameter `{petId}` jalur. 

**Untuk mengatur metode GET**

1. Pilih sumber daya**/\$1PeTiD\$1**, lalu pilih **Create** method.

1. Untuk **tipe Metode**, pilih **GET**.

1. Untuk **jenis Integrasi**, pilih **Integrasi HTTP**.

1. Matikan **integrasi proxy HTTP**.

1. Untuk **metode HTTP**, pilih **GET**.

1. Untuk **URL Endpoint**, masukkan **http://petstore-demo-endpoint.execute-api.com/petstore/pets/\$1id\$1**

1. Untuk **penanganan Konten**, pilih **Passthrough**.

1. Tetap aktifkan **batas waktu default**. 

1. Pilih **metode Buat**.

Sekarang Anda memetakan parameter `{petId}` path yang baru saja Anda buat ke parameter `{id}` path di URL endpoint HTTP dari permintaan integrasi. URL titik akhir HTTP adalah**http://petstore-demo-endpoint.execute-api.com/petstore/pets/\$1id\$1**.

**Untuk memetakan parameter `{petId}` jalur**

1. Pada tab **Permintaan integrasi**, di bawah **Pengaturan permintaan integrasi**, pilih **Edit**.

1. Pilih **parameter jalur URL**.

1.  API Gateway membuat parameter jalur untuk permintaan integrasi bernama **PeTiD**, namun parameter jalur ini tidak valid untuk URL titik akhir HTTP yang Anda tetapkan sebagai integrasi backend. Titik akhir HTTP digunakan `{id}` sebagai parameter jalur. Untuk **Nama**, hapus **PeTiD dan masukkan**. **id**

   Ini memetakan parameter jalur permintaan metode `petId` ke parameter jalur permintaan integrasi`id`.

1. Pilih **Simpan**.

Sekarang Anda menguji metodenya.

**Untuk menguji metode**

1. Pilih tab **Uji**. Anda mungkin perlu memilih tombol panah kanan untuk menampilkan tab.

1. Di bawah **Path** for **PeTiD, masukkan**. **4**

1. Pilih **Uji**.

   Jika berhasil, **badan Response** menampilkan yang berikut ini:

   ```
   {
     "id": 4,
     "type": "bird",
     "price": 999.99
   }
   ```

#### Langkah 3: Menyebarkan API
<a name="getting-started-mappings-deploy"></a>

Pada langkah ini, Anda menerapkan API sehingga Anda dapat mulai memanggilnya di luar konsol API Gateway.

**Untuk menerapkan API**

1. Pilih **Deploy API**.

1. Untuk **Stage**, pilih **Prod**.

1. (Opsional) Untuk **Deskripsi**, masukkan deskripsi.

1. Pilih **Deploy**.

#### Langkah 4: Uji API
<a name="getting-started-mappings-test"></a>

Pada langkah ini, Anda pergi ke luar konsol API Gateway dan menggunakan API Anda untuk mengakses titik akhir HTTP.

1. Di panel navigasi utama, pilih **Stage**.

1. Di bawah **Detail tahap**, pilih ikon salin untuk menyalin URL pemanggilan API Anda.

   Seharusnya terlihat seperti ini:

   ```
   https://my-api-id.execute-api.region-id.amazonaws.com/prod
   ```

1. Masukkan URL ini di kotak alamat tab browser baru dan tambahkan `/pets/4` ke URL sebelum Anda mengirimkan permintaan Anda.

1. Browser akan mengembalikan yang berikut:

   ```
   {
     "id": 4,
     "type": "bird",
     "price": 999.99
   }
   ```

#### Langkah selanjutnya
<a name="api-gateway-create-resources-and-methods-next-steps"></a>

Anda dapat menyesuaikan API lebih lanjut dengan mengaktifkan validasi permintaan, mengubah data, atau membuat respons gateway khusus. 

Untuk menjelajahi lebih banyak cara untuk menyesuaikan API Anda, lihat tutorial berikut:
+ Untuk informasi selengkapnya tentang validasi permintaan, lihat[Siapkan validasi permintaan dasar di API Gateway](api-gateway-request-validation-set-up.md).
+ Untuk informasi tentang cara mengubah payload permintaan dan respons, lihat[Tutorial: Memodifikasi permintaan integrasi dan respon untuk integrasi ke layanan AWS](set-up-data-transformations-in-api-gateway.md).
+ Untuk informasi tentang cara membuat respons gateway kustom, lihat,[Menyiapkan respons gateway untuk REST API menggunakan konsol API Gateway](set-up-gateway-response-using-the-console.md).