Memahami rute

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:

Permintaan klien HTTP melewati proxy API di Apigee ke layanan HTTP, lalu
    respons akan melalui proxy API kembali ke klien.

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:

  1. 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.
  2. Bagian kedua URL, /v1/weather, ditentukan oleh atribut <BasePath> di elemen ProxyEndpoint. 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.
  3. 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