

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

# Mengatur properti OpenAPI `basePath`
<a name="api-gateway-import-api-basePath"></a>

Di [OpenAPI 2.0](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md), Anda dapat menggunakan `basePath` properti untuk menyediakan satu atau beberapa bagian jalur yang mendahului setiap jalur yang ditentukan dalam properti. `paths` Karena API Gateway memiliki beberapa cara untuk mengekspresikan jalur sumber daya, fitur Import API menyediakan opsi berikut untuk menafsirkan `basePath` properti selama import: ignore, prepend, dan split.

Di [https://swagger.io/docs/specification/api-host-and-base-path/](https://swagger.io/docs/specification/api-host-and-base-path/), `basePath` bukan lagi properti tingkat atas. Sebagai gantinya, API Gateway menggunakan [variabel server](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.0.md#serverVariableObject) sebagai konvensi. Fitur Import API menyediakan opsi yang sama untuk menafsirkan jalur dasar selama impor. Jalur dasar diidentifikasi sebagai berikut:
+ Jika API tidak berisi `basePath` variabel apa pun, fitur Import API akan memeriksa `server.url` string untuk melihat apakah itu berisi jalur di luar`"/"`. Jika ya, jalur itu digunakan sebagai jalur dasar.
+ Jika API hanya berisi satu `basePath` variabel, fitur Import API menggunakannya sebagai jalur dasar, meskipun tidak direferensikan `server.url` dalam.
+ Jika API berisi beberapa `basePath` variabel, fitur Impor API hanya menggunakan yang pertama sebagai jalur dasar.

## Abaikan
<a name="api-gateway-import-api-basePath-ignore"></a>

Jika file OpenAPI memiliki `basePath` nilai `/a/b/c` dan `paths` properti berisi `/e` dan`/f`, berikut `POST` atau `PUT` permintaan: 

```
POST /restapis?mode=import&basepath=ignore
```



```
PUT /restapis/api_id?basepath=ignore
```

 menghasilkan sumber daya berikut di API: 
+ `/`
+ `/e`
+ `/f`

 Efeknya adalah memperlakukan `basePath` seolah-olah tidak ada, dan semua sumber daya API yang dideklarasikan disajikan relatif terhadap host. Ini dapat digunakan, misalnya, ketika Anda memiliki nama domain khusus dengan pemetaan API yang tidak menyertakan *Jalur Dasar* dan nilai *Tahap* yang mengacu pada tahap produksi Anda. 

**catatan**  
 API Gateway secara otomatis membuat sumber daya root untuk Anda, meskipun tidak dideklarasikan secara eksplisit dalam file definisi Anda. 

 Ketika tidak ditentukan, `basePath` mengambil secara `ignore` default. 

## Prepend
<a name="api-gateway-import-api-basePath-prepend"></a>

 Jika OpenAPI file memiliki `basePath` nilai `/a/b/c` dan `paths` properti berisi `/e` dan`/f`, berikut `POST` atau `PUT` permintaan: 

```
POST /restapis?mode=import&basepath=prepend
```



```
PUT /restapis/api_id?basepath=prepend
```

 menghasilkan sumber daya berikut di API: 
+ `/`
+ `/a`
+ `/a/b`
+ `/a/b/c`
+ `/a/b/c/e`
+ `/a/b/c/f`

 Efeknya adalah memperlakukan `basePath` sebagai menentukan sumber daya tambahan (tanpa metode) dan menambahkannya ke kumpulan sumber daya yang dideklarasikan. Ini dapat digunakan, misalnya, ketika tim yang berbeda bertanggung jawab atas bagian API yang berbeda dan `basePath` dapat mereferensikan lokasi jalur untuk setiap bagian API tim. 

**catatan**  
 API Gateway secara otomatis membuat sumber daya perantara untuk Anda, meskipun sumber daya tersebut tidak dideklarasikan secara eksplisit dalam definisi Anda. 

## Split
<a name="api-gateway-import-api-basePath-split"></a>

 Jika OpenAPI file memiliki `basePath` nilai `/a/b/c` dan `paths` properti berisi `/e` dan`/f`, berikut `POST` atau `PUT` permintaan: 

```
POST /restapis?mode=import&basepath=split
```



```
PUT /restapis/api_id?basepath=split
```

 menghasilkan sumber daya berikut di API: 
+ `/`
+ `/b`
+ `/b/c`
+ `/b/c/e`
+ `/b/c/f`

 Efeknya adalah memperlakukan bagian jalur paling atas,`/a`, sebagai awal dari setiap jalur sumber daya, dan untuk membuat sumber daya tambahan (tanpa metode) dalam API itu sendiri. Ini dapat, misalnya, digunakan ketika `a` merupakan nama panggung yang ingin Anda ekspos sebagai bagian dari API Anda. 