Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat Dokumentasi Apigee Edge.
Rute menentukan jalur permintaan dari ProxyEndpoint
ke
TargetEndpoint
. URL yang digunakan untuk mengakses API juga disertakan dalam rute
ProxyEndpoint
dan URL layanan backend yang ditentukan oleh
TargetEndpoint
.
Tonton video ini untuk pengenalan rute, yang menjelaskan hubungan antara
ProxyEndpoint
dan TargetEndpoint
.
Menentukan URL proxy API titik akhir
Gambar berikut menunjukkan permintaan yang masuk ke ProxyEndpoint
dari aplikasi, dan bahwa
permintaan yang diarahkan ke layanan backend:
Setelah Anda membuat proxy API di Apigee, URL default yang digunakan aplikasi untuk mengakses proxy memiliki format 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.
Ketika ada permintaan masuk ke Apigee, Apigee akan mengurai URL untuk mengarahkan permintaan ke
ProxyEndpoint
. Misalnya, URL berikut digunakan untuk mengakses proxy API:
http://example.com/v1/weather/forecastrss
Jika Anda memeriksa definisi ProxyEndpoint
untuk proxy API dalam gambar di atas,
Anda dapat melihat bagaimana
URL ini diuraikan:
- Bagian domain URL,
http://example.com
, sesuai ke nama {i>host<i} yang ditentukan pada grup lingkungan. Proxy di-deploy ke satu atau beberapa dalam grup lingkungan tersebut. Untuk informasi selengkapnya, lihat Tentang lingkungan dan grup lingkungan. - Bagian kedua URL,
/v1/weather
, ditentukan oleh atribut<BasePath>
di elemenProxyEndpoint
. Anda menentukan jalur dasar saat membuat proxy. Basis jalur harus unik bagi proxy API untuk lingkungan agar dua proxy API dalam lingkungan tidak memiliki jalur dasar yang sama. - Bagian ketiga URL,
/forecastrss
, adalah resource yang ditentukan oleh Proxy API dengan alur bersyarat terkait yang ditentukan oleh<Flows>
.
Video: Tonton video singkat untuk mempelajari endpoint proxy API lebih lanjut.
Menentukan URL endpoint target
Elemen <RouteRule>
dalam elemen
Definisi ProxyEndpoint
menentukan target proxy API, dan setelah itu dievaluasi
kebijakan dalam PreFlow, Alur Bersyarat, dan PostFlow dari permintaan ProxyEndpoint
adalah
diproses.
ProxyEndpoint
dapat menentukan target sebagai:
- URL langsung ke layanan backend.
- Definisi
TargetEndpoint
tunggal. - Beberapa
TargetEndpoint
ketika proxy API mendelegasikan permintaan ke target endpoint berdasarkan kondisi. - Rute atau target null, artinya 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, yang mengabaikan semua
TargetEndpoint
konfigurasi Anda. Misalnya, <RouteRule>
berikut selalu membuat permintaan HTTP
panggilan 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
flow yang ditentukan oleh ProxyEndpoint
.
Target tunggal
Dalam satu definisi target, ProxyEndpoint
mereferensikan satu
TargetEndpoint
definisi menurut nama, seperti yang ditunjukkan dalam gambar di atas:
<RouteRule name="default"> <TargetEndpoint>default</TargetEndpoint> </RouteRule>
Semua permintaan ke proxy API ini diarahkan ke definisi TargetEndpoint
yang sama. Tujuan
<URL>
dalam
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, kueri
parameter, header HTTP, konten pesan, atau informasi kontekstual seperti waktu dan lokal
untuk menentukan endpoint target. Misalnya, Anda dapat menyertakan area geografis, seperti AS
dan Inggris Raya, dalam URL permintaan. Anda kemudian bisa merutekan permintaan ke endpoint target berdasarkan
teritorial Anda.
Aturan rute berikut mengevaluasi header HTTP dalam permintaan. Jika header HTTP
routeTo
memiliki nilai
TargetEndpoint1
, lalu permintaan
diteruskan ke TargetEndpoint
yang bernama TargetEndpoint1
. Jika tidak, maka
permintaan 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 aturan sebagai default, yaitu sebagai rute
aturan 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 di mana pesan permintaan tidak perlu diteruskan
TargetEndpoint
. Fungsi ini berguna saat ProxyEndpoint
menjalankan 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