Buat rute untuk API HTTP di API Gateway - APIGerbang Amazon

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

Buat rute untuk API HTTP di API Gateway

Merutekan permintaan API yang masuk langsung ke sumber daya backend. Rute terdiri dari dua bagian: metode HTTP dan jalur sumber daya—misalnya,. GET /pets Anda dapat menentukan metode HTTP spesifik untuk rute Anda. Atau, Anda dapat menggunakan ANY metode untuk mencocokkan semua metode yang belum Anda tetapkan untuk sumber daya. Anda dapat membuat $default rute yang bertindak sebagai tangkapan semua untuk permintaan yang tidak cocok dengan rute lain.

catatan

API Gateway menerjemahkan parameter permintaan yang disandikan URL sebelum meneruskannya ke integrasi backend Anda.

Bekerja dengan variabel jalur

Anda dapat menggunakan variabel jalur di rute API HTTP.

Misalnya, GET /pets/{petID} rute menangkap GET permintaan yang dikirimkan klien. https://api-id.execute-api.us-east-2.amazonaws.com/pets/6

Variabel jalur serakah menangkap semua sumber daya anak dari suatu rute. Untuk membuat variabel jalur serakah, tambahkan + ke nama variabel—misalnya,. {proxy+} Variabel jalur serakah harus berada di ujung jalur sumber daya.

Bekerja dengan parameter string kueri

Secara default, API Gateway mengirimkan parameter string kueri ke integrasi backend Anda jika mereka disertakan dalam permintaan ke API HTTP.

Misalnya, ketika klien mengirim permintaan kehttps://api-id.execute-api.us-east-2.amazonaws.com/pets?id=4&type=dog, parameter string kueri ?id=4&type=dog dikirim ke integrasi Anda.

Bekerja dengan $default rute

$defaultRute menangkap permintaan yang tidak secara eksplisit cocok dengan rute lain di API Anda.

Saat $default rute menerima permintaan, API Gateway mengirimkan jalur permintaan lengkap ke integrasi. Misalnya, Anda dapat membuat API hanya dengan $default rute dan mengintegrasikannya pada ANY metode dengan titik akhir https://petstore-demo-endpoint.execute-api.com HTTP. Saat Anda mengirim permintaan kehttps://api-id.execute-api.us-east-2.amazonaws.com/store/checkout, API Gateway mengirimkan permintaan kehttps://petstore-demo-endpoint.execute-api.com/store/checkout.

Untuk mempelajari lebih lanjut tentang integrasi HTTP, lihatBuat integrasi proxy HTTP untuk API HTTP.

Permintaan API perutean

Saat klien mengirim permintaan API, API Gateway terlebih dahulu menentukan tahap mana yang akan merutekan permintaan tersebut. Jika permintaan secara eksplisit cocok dengan tahapan, API Gateway mengirimkan permintaan ke tahap tersebut. Jika tidak ada tahap yang sepenuhnya cocok dengan permintaan, API Gateway mengirimkan permintaan ke $default panggung. Jika tidak ada $default tahap, maka API kembali {"message":"Not Found"} dan tidak menghasilkan CloudWatch log.

Setelah memilih tahapan, API Gateway memilih rute. API Gateway memilih rute dengan kecocokan paling spesifik, menggunakan prioritas berikut:

  1. Pertandingan penuh untuk rute dan metode.

  2. Cocokkan rute dan metode dengan variabel jalur serakah ({proxy+}).

  3. $defaultRute.

Jika tidak ada rute yang cocok dengan permintaan, API Gateway {"message":"Not Found"} akan kembali ke klien.

Misalnya, pertimbangkan API dengan $default tahapan dan contoh rute berikut:

  1. GET /pets/dog/1

  2. GET /pets/dog/{id}

  3. GET /pets/{proxy+}

  4. ANY /{proxy+}

  5. $default

    Tabel berikut merangkum cara API Gateway merutekan permintaan ke rute contoh.

Permintaan Rute yang dipilih Penjelasan

GET https://api-id.execute-api.region.amazonaws.com/pets/dog/1

GET /pets/dog/1

Permintaan sepenuhnya cocok dengan rute statis ini.

GET https://api-id.execute-api.region.amazonaws.com/pets/dog/2

GET /pets/dog/{id}

Permintaan sepenuhnya cocok dengan rute ini.

GET https://api-id.execute-api.region.amazonaws.com/pets/cat/1

GET /pets/{proxy+}

Permintaan tidak sepenuhnya cocok dengan rute. Rute dengan GET metode dan variabel jalur serakah menangkap permintaan ini.

POST https://api-id.execute-api.region.amazonaws.com/test/5

ANY /{proxy+}

ANYMetode ini cocok dengan semua metode yang belum Anda tentukan untuk rute. Rute dengan variabel jalur serakah memiliki prioritas lebih tinggi daripada $default rute.