Halaman ini berlaku untuk Apigee dan Apigee Hybrid.
Lihat dokumentasi
Apigee Edge.
Rute menentukan jalur permintaan dari ProxyEndpoint
ke
TargetEndpoint
. Rute ini mencakup URL yang digunakan untuk mengakses API
ProxyEndpoint
dan URL layanan backend yang ditentukan oleh
TargetEndpoint
.
Tonton video ini untuk mengetahui pengantar tentang rute, yang menjelaskan hubungan antara
ProxyEndpoint
dan TargetEndpoint
.
Menentukan URL endpoint proxy API
Gambar berikut menunjukkan permintaan yang masuk ke ProxyEndpoint
dari aplikasi, dan permintaan tersebut diarahkan ke layanan backend:
Setelah Anda membuat proxy API di Apigee, URL default yang digunakan aplikasi untuk mengakses proxy memiliki bentuk berikut:
https://www.example.com/shopping/cart/addItem |_____________| |___________| |_____| | | | hostname basepath resource
Dengan:
- Nama host adalah domain yang telah Anda tambahkan ke DNS atau alamat IP.
- Jalur dasar dan jalur resource ditentukan saat Anda membuat proxy API.
Saat permintaan masuk ke Apigee, Apigee akan mem-parsing URL untuk mengarahkan permintaan ke
ProxyEndpoint
yang benar. Misalnya, URL berikut digunakan untuk mengakses proxy API:
http://example.com/v1/weather/forecastrss
Jika Anda memeriksa definisi ProxyEndpoint
untuk proxy API pada gambar di atas,
Anda dapat melihat cara URL ini diuraikan:
- Bagian domain URL,
http://example.com
, sesuai dengan nama host yang ditentukan di grup lingkungan. Proxy di-deploy ke satu atau beberapa lingkungan dalam grup lingkungan tersebut. Untuk mengetahui informasi selengkapnya, lihat Tentang lingkungan dan grup lingkungan. - Bagian kedua URL,
/v1/weather
, ditentukan oleh elemen<BasePath>
diProxyEndpoint
. Anda menentukan jalur dasar saat membuat proxy. Jalur dasar harus unik untuk proxy API di lingkungan sehingga dua proxy API di lingkungan yang sama tidak memiliki jalur dasar yang sama. - Bagian ketiga URL,
/forecastrss
, adalah resource yang ditentukan oleh proxy API dengan alur kondisional yang sesuai yang ditentukan oleh elemen<Flows>
.
Video: Tonton video singkat untuk mempelajari lebih lanjut endpoint proxy API.
Menentukan URL endpoint target
Elemen <RouteRule>
dalam definisi
ProxyEndpoint
menentukan target proxy API, dan dievaluasi setelah semua
kebijakan dalam PreFlow, Conditional Flows, dan PostFlow permintaan ProxyEndpoint
diproses.
ProxyEndpoint
dapat menentukan target sebagai:
- URL langsung ke layanan backend.
- Definisi
TargetEndpoint
tunggal. - Beberapa
TargetEndpoint
tempat proxy API mendelegasikan permintaan ke endpoint target berdasarkan kondisi. - Rute atau target null, yang berarti permintaan tidak diteruskan ke target. Sebagai gantinya, semua pemrosesan permintaan, dan pembuatan respons, terjadi di Apigee.
Video: Tonton video singkat untuk mempelajari lebih lanjut endpoint target.
URL Langsung
ProxyEndpoint
dapat langsung memanggil layanan backend, melewati konfigurasi
TargetEndpoint
bernama. Misalnya, <RouteRule>
berikut selalu melakukan panggilan HTTP
ke http://example.com/myAPI:
<RouteRule name="default"> <URL>http://example.com/myAPI</URL> </RouteRule>
Namun, karena tidak ada TargetEndpoint
, Anda hanya dapat menambahkan kebijakan ke alur yang ditentukan oleh ProxyEndpoint
.
Target tunggal
Dalam satu definisi target, ProxyEndpoint
mereferensikan satu
definisi TargetEndpoint
berdasarkan nama, seperti yang ditunjukkan pada gambar di atas:
<RouteRule name="default"> <TargetEndpoint>default</TargetEndpoint> </RouteRule>
Semua permintaan ke proxy API ini diarahkan ke definisi TargetEndpoint
yang sama. Tag
<URL>
di
TargetEndpoint
menentukan lokasi layanan backend. Pada gambar di atas,
URL target adalah http://weather.yahooapis.com
.
Target bersyarat
Tag <RouteRule>
memungkinkan
Anda mengarahkan permintaan ke target berdasarkan kondisi. Anda dapat menggunakan variabel alur, parameter kueri, header HTTP, konten pesan, atau informasi kontekstual seperti waktu dan lokalitas untuk menentukan endpoint target. Misalnya, Anda dapat menyertakan area geografis, seperti AS dan Inggris Raya, dalam URL permintaan. Kemudian, Anda dapat merutekan permintaan ke endpoint target berdasarkan
region.
Aturan rute berikut mengevaluasi header HTTP dalam permintaan. Jika header HTTP
routeTo
memiliki nilai
TargetEndpoint1
, maka permintaan
diteruskan ke TargetEndpoint
bernama TargetEndpoint1
. Jika tidak, maka
permintaan akan diteruskan ke TargetEndpoint2
.
<RouteRule name="MyRoute"> <Condition>request.header.routeTo = "TargetEndpoint1"</Condition> <TargetEndpoint>TargetEndpoint1</TargetEndpoint> </RouteRule> <RouteRule name="default"> <TargetEndpoint>TargetEndpoint2</TargetEndpoint> </RouteRule>
Jika Anda memiliki beberapa aturan rute, buat satu sebagai default, yaitu sebagai aturan rute tanpa kondisi. Pastikan aturan rute default ditentukan terakhir dalam daftar
rute bersyarat karena aturan dievaluasi dari atas ke bawah dalam ProxyEndpoint
.
Lihat juga Rute bersyarat dan Referensi kondisi.
Video: Tonton video singkat untuk mempelajari cara merutekan ke endpoint target menggunakan target bersyarat.
Rute null
Rute null mendukung skenario saat pesan permintaan tidak perlu diteruskan ke
TargetEndpoint
. Hal ini berguna saat ProxyEndpoint
melakukan semua
pemrosesan yang diperlukan,
misalnya dengan menggunakan JavaScript untuk memanggil layanan eksternal.
Contoh berikut menentukan rute null:
<RouteRule name="GoNowhere"/>
Pelajari lebih lanjut
- Referensi konfigurasi proxy API
- Referensi properti endpoint
- Load balancing di seluruh server backend