

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

# Kembangkan REST APIs di API Gateway
<a name="rest-api-develop"></a>

 [Di Amazon API Gateway, Anda membuat REST API sebagai kumpulan entitas yang dapat diprogram yang dikenal sebagai sumber daya API Gateway.](https://docs.aws.amazon.com/apigateway/latest/api/API_Resource.html) Misalnya, Anda menggunakan [RestApi](https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html)resource untuk merepresentasikan API yang dapat berisi kumpulan entitas [Resource](https://docs.aws.amazon.com/apigateway/latest/api/API_Resource.html). 

Setiap `Resource` entitas dapat memiliki satu atau lebih sumber daya [Metode](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html). A `Method` adalah permintaan masuk yang dikirimkan oleh klien dan dapat berisi parameter permintaan berikut: parameter jalur, header, atau parameter string kueri. Selain itu, tergantung pada metode HTTP, permintaan dapat berisi badan. Metode Anda mendefinisikan bagaimana klien mengakses ekspos. `Resource` [Untuk mengintegrasikan `Method` dengan titik akhir backend, juga dikenal sebagai titik akhir integrasi, Anda membuat sumber daya Integrasi.](https://docs.aws.amazon.com/apigateway/latest/api/API_Integration.html) Ini meneruskan permintaan masuk ke URI titik akhir integrasi tertentu. Jika perlu, Anda dapat mengubah parameter permintaan atau badan permintaan untuk memenuhi persyaratan backend, atau Anda dapat membuat integrasi proxy, di mana API Gateway mengirimkan seluruh permintaan dalam format standar ke URI endpoint integrasi dan kemudian langsung mengirimkan respons ke klien.

Untuk tanggapan, Anda dapat membuat [MethodResponse](https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html)sumber daya untuk mewakili respons yang diterima oleh klien dan Anda membuat [IntegrationResponse](https://docs.aws.amazon.com/apigateway/latest/api/API_IntegrationResponse.html)sumber daya untuk mewakili respons yang dikembalikan oleh backend. Gunakan respons integrasi untuk mengubah data respons backend sebelum mengembalikan data ke klien atau meneruskan respons backend apa adanya ke klien.

## Contoh sumber daya untuk REST API
<a name="rest-api-develop-example"></a>

Diagram berikut menunjukkan bagaimana API Gateway mengimplementasikan request/response model ini untuk proxy HTTP dan integrasi non-proxy HTTP untuk sumber daya. `GET /pets` Klien mengirimkan `x-version:beta` header ke API Gateway dan API Gateway mengirimkan kode `204` status ke klien.

Dalam integrasi non-proxy, API Gateway melakukan transformasi data untuk memenuhi persyaratan backend, dengan memodifikasi permintaan integrasi dan respons integrasi. Dalam integrasi non-proxy, Anda dapat mengakses isi dalam permintaan metode tetapi Anda mengubahnya dalam permintaan integrasi. Ketika titik akhir integrasi mengembalikan respons dengan badan, Anda mengakses dan mengubahnya dalam respons integrasi. Anda tidak dapat memodifikasi tubuh dalam respons metode.

Dalam integrasi proxy, titik akhir integrasi memodifikasi permintaan dan respons. API Gateway tidak mengubah permintaan integrasi atau respons integrasi, dan mengirimkan permintaan masuk ke backend apa adanya.

Terlepas dari jenis integrasi, klien mengirim permintaan ke API Gateway dan API Gateway merespons secara sinkron.

------
#### [ Non-proxy integration ]

![Diagram integrasi non-proxy API Gateway](http://docs.aws.amazon.com/id_id/apigateway/latest/developerguide/images/develop-non-proxy.png)


------
#### [ Proxy integration ]

![Diagram integrasi proxy API Gateway](http://docs.aws.amazon.com/id_id/apigateway/latest/developerguide/images/develop-proxy.png)


------

Contoh log eksekusi berikut menunjukkan API Gateway apa yang akan masuk ke dalam contoh sebelumnya. Untuk kejelasan, beberapa nilai dan log awal telah dihapus:

------
#### [ Non-proxy integration ]

```
Wed Feb 12 23:56:44 UTC 2025 : Starting execution for request: abcd-1234-5678
Wed Feb 12 23:56:44 UTC 2025 : HTTP Method: GET, Resource Path: /pets
Wed Feb 12 23:56:44 UTC 2025 : Method request path: {}
Wed Feb 12 23:56:44 UTC 2025 : Method request query string: {}
Wed Feb 12 23:56:44 UTC 2025 : Method request headers: {x-version=beta}
Wed Feb 12 23:56:44 UTC 2025 : Method request body before transformations: 
Wed Feb 12 23:56:44 UTC 2025 : Endpoint request URI: http://petstore-demo-endpoint.execute-api.com/petstore/pets
Wed Feb 12 23:56:44 UTC 2025 : Endpoint request headers: {app-version=beta}
Wed Feb 12 23:56:44 UTC 2025 : Endpoint request body after transformations: 
Wed Feb 12 23:56:44 UTC 2025 : Sending request to http://petstore-demo-endpoint.execute-api.com/petstore/pets
Wed Feb 12 23:56:45 UTC 2025 : Received response. Status: 200, Integration latency: 123 ms
Wed Feb 12 23:56:45 UTC 2025 : Endpoint response headers: {Date=Wed, 12 Feb 2025 23:56:45 GMT}
Wed Feb 12 23:56:45 UTC 2025 : Endpoint response body before transformations:
Wed Feb 12 23:56:45 UTC 2025 : Method response body after transformations: (null)
Wed Feb 12 23:56:45 UTC 2025 : Method response headers: {X-Amzn-Trace-Id=Root=1-abcd-12345}
Wed Feb 12 23:56:45 UTC 2025 : Successfully completed execution
Wed Feb 12 23:56:45 UTC 2025 : Method completed with status: 204
```

------
#### [ Proxy integration ]

```
Wed Feb 12 23:59:42 UTC 2025 : Starting execution for request: abcd-1234-5678
Wed Feb 12 23:59:42 UTC 2025 : HTTP Method: GET, Resource Path: /pets
Wed Feb 12 23:59:42 UTC 2025 : Method request path: {}
Wed Feb 12 23:59:42 UTC 2025 : Method request query string: {}
Wed Feb 12 23:59:42 UTC 2025 : Method request headers: {x-version=beta}
Wed Feb 12 23:59:42 UTC 2025 : Method request body before transformations: 
Wed Feb 12 23:59:42 UTC 2025 : Endpoint request URI: http://petstore-demo-endpoint.execute-api.com/petstore/pets
Wed Feb 12 23:59:42 UTC 2025 : Endpoint request headers: { x-version=beta}
Wed Feb 12 23:59:42 UTC 2025 : Endpoint request body after transformations: 
Wed Feb 12 23:59:42 UTC 2025 : Sending request to http://petstore-demo-endpoint.execute-api.com/petstore/pets
Wed Feb 12 23:59:43 UTC 2025 : Received response. Status: 204, Integration latency: 123 ms
Wed Feb 12 23:59:43 UTC 2025 : Endpoint response headers: {Date=Wed, 12 Feb 2025 23:59:43 GMT}
Wed Feb 12 23:59:43 UTC 2025 : Endpoint response body before transformations: 
Wed Feb 12 23:59:43 UTC 2025 : Method response body after transformations:
Wed Feb 12 23:59:43 UTC 2025 : Method response headers: {Date=Wed, 12 Feb 2025 23:59:43 GMT}
Wed Feb 12 23:59:43 UTC 2025 : Successfully completed execution
Wed Feb 12 23:59:43 UTC 2025 : Method completed with status: 204
```

------

Untuk mengimpor API serupa dan mengujinya di API Konsol Manajemen AWS, lihat [contoh API](api-gateway-create-api-from-example.md).

## Fitur REST API tambahan untuk pengembangan
<a name="rest-api-develop-details"></a>

API Gateway mendukung fitur tambahan untuk pengembangan REST API Anda. Misalnya, untuk membantu pelanggan memahami API Anda, Anda dapat memberikan dokumentasi untuk API. Untuk mengaktifkannya, tambahkan [DocumentationPart](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationPart.html)sumber daya untuk entitas API yang didukung.

[Untuk mengontrol cara klien memanggil API, gunakan [izin IAM](permissions.md), [otorisasi Lambda](apigateway-use-lambda-authorizer.md), atau kumpulan pengguna Amazon Cognito.](apigateway-integrate-with-cognito.md) Untuk mengukur penggunaan API Anda, siapkan [rencana penggunaan](api-gateway-api-usage-plans.md) untuk membatasi permintaan API. Anda dapat mengaktifkan ini saat membuat atau memperbarui API Anda.

Diagram berikut menunjukkan fitur yang tersedia untuk pengembangan REST API dan di mana dalam model permintaan/respons fitur ini dikonfigurasi.

![Diagram fitur API Gateway](http://docs.aws.amazon.com/id_id/apigateway/latest/developerguide/images/develop-features.png)


Untuk pengantar tentang cara membuat API, lihat[Tutorial: Buat REST API dengan integrasi proxy Lambda](api-gateway-create-api-as-simple-proxy-for-lambda.md). Untuk mempelajari informasi selengkapnya tentang kemampuan API Gateway yang mungkin Anda gunakan saat mengembangkan REST API, lihat topik berikut. Topik ini berisi informasi konseptual dan prosedur yang dapat Anda lakukan menggunakan konsol API Gateway, API Gateway REST API AWS CLI, atau salah satu topik. AWS SDKs

**Topics**
+ [Contoh sumber daya untuk REST API](#rest-api-develop-example)
+ [Fitur REST API tambahan untuk pengembangan](#rest-api-develop-details)
+ [Jenis titik akhir API untuk REST APIs di API Gateway](api-gateway-api-endpoint-types.md)
+ [Kebijakan keamanan untuk REST APIs di API Gateway](apigateway-security-policies.md)
+ [Jenis alamat IP untuk REST APIs di API Gateway](api-gateway-ip-address-type.md)
+ [Metode untuk REST APIs di API Gateway](how-to-method-settings.md)
+ [Kontrol dan kelola akses ke REST APIs di API Gateway](apigateway-control-access-to-api.md)
+ [Integrasi untuk REST APIs di API Gateway](how-to-integration-settings.md)
+ [Minta validasi untuk REST APIs di API Gateway](api-gateway-method-request-validation.md)
+ [Transformasi data untuk REST APIs di API Gateway](rest-api-data-transformations.md)
+ [Tanggapan gateway untuk REST APIs di API Gateway](api-gateway-gatewayResponse-definition.md)
+ [CORS untuk REST APIs di API Gateway](how-to-cors.md)
+ [Jenis media biner untuk REST APIs di API Gateway](api-gateway-payload-encodings.md)
+ [Panggil REST APIs di API Gateway](how-to-call-api.md)
+ [Kembangkan REST APIs menggunakan OpenAPI di API Gateway](api-gateway-import-api.md)