

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

# API kalkulator sederhana di API Gateway
<a name="simple-calc-lambda-api"></a>

API kalkulator sederhana kami mengekspos tiga metode (GET, POST, GET) untuk memanggil. [Kalkulator sederhana fungsi Lambda](simple-calc-nodejs-lambda-function.md) Representasi grafis dari API ini ditampilkan sebagai berikut:

![\[API kalkulator sederhana untuk SDK yang dihasilkan\]](http://docs.aws.amazon.com/id_id/apigateway/latest/developerguide/images/simple-calc-api-console-hierarchy-new-console.png)


Ketiga metode ini menunjukkan cara berbeda untuk memasok input untuk fungsi Lambda backend untuk melakukan operasi yang sama: 
+ `GET /?a=...&b=...&op=...`Metode ini menggunakan parameter kueri untuk menentukan input.
+ `POST /`Metode ini menggunakan payload JSON `{"a":"Number", "b":"Number", "op":"string"}` untuk menentukan input.
+ `GET /{a}/{b}/{op}`Metode ini menggunakan parameter jalur untuk menentukan input.

Jika tidak ditentukan, API Gateway menghasilkan nama metode SDK yang sesuai dengan menggabungkan metode HTTP dan bagian jalur. Bagian jalur root (`/`) disebut sebagai`Api Root`. Misalnya, nama metode Java SDK default untuk metode API `GET /?a=...&b=...&op=...` adalah`getABOp`, nama metode SDK default untuk `POST /` adalah`postApiRoot`, dan nama metode SDK default untuk adalah. `GET /{a}/{b}/{op}` `getABOp` Individu SDKs dapat menyesuaikan konvensi. Lihat dokumentasi di sumber SDK yang dihasilkan untuk nama metode khusus SDK. 

Anda dapat, dan harus, mengganti nama metode SDK default dengan menentukan properti operationName pada setiap metode [API](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html#operationName). Anda dapat melakukannya saat [membuat metode API atau memperbarui metode](https://docs.aws.amazon.com/apigateway/latest/api/API_PutMethod.html) [API](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateMethod.html) menggunakan API Gateway REST API. Dalam definisi API Swagger, Anda dapat mengatur `operationId` untuk mencapai hasil yang sama.

Sebelum menunjukkan cara memanggil metode ini menggunakan SDK yang dihasilkan oleh API Gateway untuk API ini, mari kita ingat secara singkat cara mengaturnya. Untuk petunjuk mendetail, lihat [Kembangkan REST APIs di API Gateway](rest-api-develop.md). Jika Anda baru mengenal API Gateway, lihat [Pilih tutorial AWS Lambda integrasi](getting-started-with-lambda-integration.md) terlebih dahulu.

## Buat model untuk input dan output
<a name="simple-calc-lambda-api-create-models-for-input-and-output"></a>

Untuk menentukan input yang diketik dengan kuat di SDK, kami membuat `Input` model untuk API. Untuk menggambarkan tipe data badan respons, kami membuat `Output` model dan `Result` model.

**Untuk membuat model untuk input, output, dan hasil**

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

1. Pilih **Buat model**.

1. Untuk **Nama**, masukkan **input**.

1. Untuk **jenis Konten**, masukkan**application/json**. 

   Jika tidak ada jenis konten yang cocok ditemukan, validasi permintaan tidak dilakukan. Untuk menggunakan model yang sama terlepas dari jenis konten, masukkan**\$1default**.

1. Untuk **skema Model**, masukkan model berikut:

   ```
   {
       "$schema" : "$schema": "http://json-schema.org/draft-04/schema#",
       "type":"object",
       "properties":{
           "a":{"type":"number"},
           "b":{"type":"number"},
           "op":{"type":"string"}
       },
       "title":"Input"
   }
   ```

1. Pilih **Buat model**.

1. Ulangi langkah-langkah berikut untuk membuat `Output` model dan `Result` model.

   Untuk `Output` model, masukkan yang berikut ini untuk **skema Model**:

   ```
   {
       "$schema": "http://json-schema.org/draft-04/schema#",
       "type": "object",
       "properties": {
           "c": {"type":"number"}
       },
       "title": "Output"
   }
   ```

   Untuk `Result` model, masukkan yang berikut ini untuk **skema Model**. Ganti ID API `abc123` dengan ID API Anda.

   ```
   {
       "$schema": "http://json-schema.org/draft-04/schema#",
       "type":"object",
       "properties":{
           "input":{
               "$ref":"https://apigateway.amazonaws.com/restapis/abc123/models/Input"
           },
           "output":{
               "$ref":"https://apigateway.amazonaws.com/restapis/abc123/models/Output"
           }
       },
       "title":"Result"
   }
   ```

## Siapkan GET/parameter kueri metode
<a name="simple-calc-lambda-api-set-up-get-method-query-parameters"></a>

Untuk `GET /?a=..&b=..&op=..` metode ini, parameter kueri dideklarasikan dalam **Permintaan Metode**:

**Untuk mengatur parameter string kueri GET/URL**

1. Di bagian **Permintaan metode** untuk `GET` metode pada sumber daya root (`/`), pilih **Edit**.

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

   1. Pilih **Tambahkan string kueri**.

   1. Untuk **Nama**, masukkan **a**.

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

   1. Tetap **caching** dimatikan.

   Ulangi langkah yang sama dan buat string kueri bernama **b** dan string kueri bernama**op**.

1. Pilih **Simpan**.

## Siapkan model data untuk payload sebagai masukan ke backend
<a name="simple-calc-lambda-api-set-up-post-method-body-data-type"></a>

Untuk `POST /` metode ini, kita membuat `Input` model dan menambahkannya ke permintaan metode untuk menentukan bentuk data input. 

**Untuk mengatur model data untuk payload sebagai masukan ke backend**

1. Di bagian **Permintaan metode**, untuk `POST` metode pada sumber daya root (`/`) pilih **Edit**.

1. Pilih **badan Permintaan**.

1. Pilih **Tambah model**.

1. Untuk **jenis Konten**, masukkan**application/json**.

1. Untuk **Model**, pilih **Input**.

1. Pilih **Simpan**.

Dengan model ini, pelanggan API Anda dapat memanggil SDK untuk menentukan input dengan membuat instance objek. `Input` Tanpa model ini, pelanggan Anda akan diminta untuk membuat objek kamus untuk mewakili input JSON ke fungsi Lambda. 

## Mengatur model data untuk output hasil dari backend
<a name="simple-calc-lambda-api-set-up-all-methods-result-data-type"></a>

Untuk ketiga metode, kita membuat `Result` model dan menambahkannya ke metode `Method Response` untuk menentukan bentuk output yang dikembalikan oleh fungsi Lambda.

**Untuk mengatur model data untuk output hasil dari backend**

1. Pilih sumber daya**/\$1a\$1/\$1b\$1/\$1op\$1**, lalu pilih metode **GET**.

1. Pada tab **Respons Metode**, di bawah **Respons 200**, pilih **Edit**.

1. Di bawah **Badan respons**, pilih **Tambahkan model**.

1. Untuk **jenis Konten**, masukkan**application/json**.

1. Untuk **Model**, pilih **Hasil**.

1. Pilih **Simpan**.

Dengan model ini, pelanggan API Anda dapat mengurai output yang berhasil dengan membaca properti `Result` objek. Tanpa model ini, pelanggan akan diminta untuk membuat objek kamus untuk mewakili output JSON. 