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 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 keterangan:
- 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 mengurai URL untuk mengarahkan permintaan ke ProxyEndpoint
yang benar. Misalnya, URL berikut digunakan untuk mengakses proxy API:
http://example.com/v1/weather/forecastrss
Jika 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 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 untuk 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 endpoint proxy API lebih lanjut.
Menentukan URL endpoint target
Elemen <RouteRule>
dalam
definisi ProxyEndpoint
menentukan target proxy API, dan dievaluasi setelah semua
kebijakan di PreFlow, Alur Bersyarat, dan PostFlow permintaan ProxyEndpoint
diproses.
ProxyEndpoint
dapat menentukan target sebagai:
- URL langsung ke layanan backend.
- Satu definisi
TargetEndpoint
. - 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 endpoint target lebih lanjut.
URL Langsung
ProxyEndpoint
dapat langsung memanggil layanan backend, dengan mengabaikan konfigurasi TargetEndpoint
yang dinamai. 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
.
Satu target
Dalam satu definisi target, ProxyEndpoint
mereferensikan satu
definisi TargetEndpoint
menurut namanya, 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 targetnya 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 Amerika Serikat
dan Inggris Raya, dalam URL permintaan. Kemudian, Anda dapat merutekan permintaan ke endpoint target berdasarkan wilayah.
Aturan rute berikut mengevaluasi header HTTP dalam permintaan. Jika header HTTP
routeTo
memiliki nilai
TargetEndpoint1
, permintaan
akan diteruskan ke TargetEndpoint
bernama TargetEndpoint1
. Jika tidak, 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 aturan 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 di 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