

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

# Gunakan pemetaan API untuk menghubungkan tahapan API ke nama domain khusus untuk REST APIs
<a name="rest-api-mappings"></a>

Anda menggunakan pemetaan API untuk menghubungkan tahapan API ke nama domain kustom. Ini mengirimkan lalu lintas ke Anda APIs melalui nama domain kustom Anda.

Pemetaan API menentukan API, tahap, dan jalur opsional yang akan digunakan untuk pemetaan. Misalnya, Anda dapat `https://api.example.com/orders` memetakan ke `production` tahap API.

Anda dapat memetakan tahap HTTP dan REST API ke nama domain kustom yang sama.

Sebelum membuat pemetaan API, Anda harus memiliki API, panggung, dan nama domain khusus. Untuk mempelajari selengkapnya tentang membuat nama domain kustom, lihat[Siapkan nama domain kustom Regional di API Gateway](apigateway-regional-api-custom-domain-create.md).

## Permintaan masuk ke nama domain kustom Anda
<a name="rest-api-mappings-incoming-requests"></a>

Saat Anda memetakan nama domain kustom ke tahap API Anda, API Gateway menghapus jalur dasar yang masuk. Ini menghapus jalur dasar yang dipetakan dari pemanggilan ke API. Misalnya, jika pemetaan jalur dasar Anda `https://api.example.com/orders/shop/5` ke `test` panggung, dan Anda menggunakan permintaan berikut`https://api.example.com/orders/shop/5/hats`, API Gateway akan memanggil `/hats` sumber daya `test` tahap API Anda, bukan sumber daya. `orders/shop/5/hats`

## Memetakan permintaan API
<a name="rest-api-mappings-evalutation"></a>

Berikut ini menjelaskan bagaimana API Gateway mengevaluasi pemetaan API.

Anda dapat membuat pemetaan API menggunakan pemetaan tingkat tunggal, seperti pemetaan API dari `orders` `beta` tahap API dan pemetaan API dari `shipping` tahap API. `alpha` Untuk nama domain kustom Regional dengan kebijakan keamanan TLS 1.2, API Gateway mendukung pemetaan API multi-level. Anda dapat membuat pemetaan API dari `orders/v1/items` `alpha` tahap API dan `orders/v2/items` ke `beta` tahap API. Saat Anda membuat pemetaan dengan beberapa level, API Gateway mengirimkan permintaan ke pemetaan API yang memiliki jalur pencocokan terpanjang.

Anda dapat membuat pemetaan API ke jalur `(none)` kosong. Jika tidak ada jalur yang cocok dengan permintaan, API Gateway mengirimkan permintaan ke jalur kosong`(none)`.

Dalam contoh ini, nama domain kustom `https://api.example.com` memiliki pemetaan API berikut.


|  Pemetaan API  |  API yang dipilih  | 
| --- | --- | 
|  `(none)`  |   API 1   | 
|   `orders`   |   API 2   | 
|  `orders/v1/items`  |   API 3   | 
|  `orders/v2/items`  |   API 4   | 
|  `orders/v1/items/categories`  |   API 5   | 

Tabel berikut menunjukkan bagaimana API Gateway menerapkan pemetaan API sebelumnya ke permintaan contoh.


| Permintaan | API yang dipilih | Penjelasan | 
| --- | --- | --- | 
|  `https://api.example.com/orders`  |  API 2  |  Permintaan sama persis dengan pemetaan API ini.  | 
|  `https://api.example.com/orders/v1/items`  |  API 3  |  Permintaan sama persis dengan pemetaan API ini.  | 
|  `https://api.example.com/orders/v2/items`  |  API 4  |  Permintaan sama persis dengan pemetaan API ini.  | 
|  `https://api.example.com/orders/v1/items/123`  |  API 3  |  API Gateway memilih pemetaan yang memiliki jalur pencocokan terpanjang. `123`Pada akhir permintaan tidak mempengaruhi pemilihan. Lihat [Permintaan masuk ke nama domain kustom Anda](#rest-api-mappings-incoming-requests).  | 
|  `https://api.example.com/orders/v2/items/categories/5`  |  API 5  |  API Gateway memilih pemetaan yang memiliki jalur pencocokan terpanjang.  | 
|  `https://api.example.com/customers`  |  API 1  |  API Gateway menggunakan pemetaan kosong sebagai tangkapan semua.  | 
|  `https://api.example.com/ordersandmore`  |  API 2  |  API Gateway memilih pemetaan yang memiliki awalan pencocokan terpanjang. Untuk nama domain khusus yang dikonfigurasi dengan pemetaan tingkat tunggal, seperti hanya `https://api.example.com/orders` dan, API `https://api.example.com/` Gateway akan memilih`API 1`, karena tidak ada jalur yang cocok dengannya. `ordersandmore`  | 

## Pembatasan
<a name="rest-api-mappings-restrictions"></a>
+ Dalam pemetaan API, nama domain khusus dan dipetakan APIs harus berada di akun yang sama AWS .
+ Pemetaan API harus hanya berisi huruf, angka, dan karakter berikut: `$-_.+!*'()/`
+ Panjang maksimum jalur dalam pemetaan API adalah 300 karakter.
+ Anda dapat memiliki 200 pemetaan API dengan beberapa level untuk setiap nama domain. Batas ini tidak termasuk pemetaan API dengan level tunggal, seperti`/prod`.
+ Anda hanya dapat memetakan HTTP APIs ke nama domain kustom regional dengan kebijakan keamanan TLS 1.2.
+ Anda tidak dapat memetakan WebSocket APIs ke nama domain kustom yang sama dengan HTTP API atau REST API.
+ Setelah membuat pemetaan API, Anda harus membuat atau memperbarui catatan sumber daya penyedia DNS untuk dipetakan ke titik akhir API Anda.
+ Jika Anda membuat pemetaan API dengan beberapa level, API Gateway mengonversi semua nama header menjadi huruf kecil.

## Buat pemetaan API
<a name="rest-api-mappings-examples"></a>

Untuk membuat pemetaan API, Anda harus terlebih dahulu membuat nama domain kustom, API, dan stage. Nama domain kustom Anda harus memiliki mode routing yang disetel ke salah satu `ROUTING_RULE_THEN_API_MAPPING` atau`API_MAPPING_ONLY`. Untuk informasi tentang cara mengatur mode perutean, lihat[Mengatur mode routing untuk nama domain kustom Anda](set-routing-mode.md).

Misalnya AWS Serverless Application Model template yang membuat semua sumber daya, lihat [Sessions With SAM](https://github.com/aws-samples/sessions-with-aws-sam/tree/master/custom-domains) on GitHub.

------
#### [ Konsol Manajemen AWS ]

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

1. Pilih **Nama domain khusus** dari panel navigasi utama. 

1. Pilih nama domain khusus.

1. Pada tab **Routing details**, pilih **Configure API mappings**.

1. Masukkan **API**, **Stage**, dan **Path** untuk pemetaan.

1. Pilih **Simpan**.

------
#### [ AWS CLI ]

[create-api-mapping](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/create-api-mapping.html)Perintah berikut membuat pemetaan API. Dalam contoh ini, API Gateway mengirimkan permintaan `api.example.com/v1/orders` ke API dan tahap yang ditentukan.

**catatan**  
Untuk membuat pemetaan API dengan beberapa level, Anda harus menggunakan. `apigatewayv2`

```
aws apigatewayv2 create-api-mapping \
    --domain-name api.example.com \
    --api-mapping-key v1/orders \
    --api-id a1b2c3d4 \
    --stage test
```

------
#### [ CloudFormation ]

 CloudFormation Contoh berikut membuat pemetaan API.

**catatan**  
Untuk membuat pemetaan API dengan beberapa level, Anda harus menggunakan. `AWS::ApiGatewayV2`

```
MyApiMapping:
  Type: 'AWS::ApiGatewayV2::ApiMapping'
  Properties:
    DomainName: api.example.com
    ApiMappingKey: 'orders/v2/items'
    ApiId: !Ref MyApi
    Stage: !Ref MyStage
```

------