Memahami rute

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Baca dokumentasi Apigee Edge.

Rute menentukan jalur permintaan dari ProxyEndpoint ke TargetEndpoint. Dalam rute ini, URL yang digunakan untuk mengakses API ProxyEndpoint dan URL layanan backend yang ditentukan oleh TargetEndpoint telah disertakan.

Tonton video ini untuk 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:

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

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 bagaimana URL ini diuraikan:

  1. Bagian domain dari URL, http://example.com, berkaitan dengan nama host yang ditentukan pada grup lingkungan. Proxy di-deploy ke satu atau beberapa lingkungan dalam grup lingkungan tersebut. Untuk mengetahui informasi selengkapnya, lihat Tentang lingkungan dan grup lingkungan.
  2. Bagian kedua URL, /v1/weather, ditentukan oleh elemen <BasePath> di ProxyEndpoint. Anda menentukan jalur dasar saat membuat proxy. Jalur dasar harus unik bagi proxy API untuk lingkungan tersebut, agar dua proxy API di lingkungan yang sama tidak memiliki jalur dasar yang sama.
  3. Bagian ketiga URL, /forecastrss, adalah resource yang didefinisikan oleh proxy API dengan alur kondisional yang sesuai yang didefinisikan 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 dalam PreFlow, Aliran Bersyarat, dan PostFlow dari permintaan ProxyEndpoint diproses.

ProxyEndpoint dapat menentukan target sebagai:

  • URL langsung ke layanan backend.
  • Definisi TargetEndpoint tunggal.
  • Beberapa TargetEndpoint dengan proxy API mendelegasikan permintaan ke endpoint target berdasarkan suatu 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 lebih lanjut endpoint target.

URL Langsung

ProxyEndpoint dapat langsung memanggil layanan backend, yang mengabaikan konfigurasi TargetEndpoint apa pun yang telah diberi nama. 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 definisi target tunggal, ProxyEndpoint mereferensikan satu definisi TargetEndpoint berdasarkan 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. Tag <URL> dalam 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 tertentu. Anda dapat menggunakan variabel alur, parameter kueri, header HTTP, konten pesan, atau informasi kontekstual seperti waktu dan lokalitas untuk menentukan endpoint target. Misalnya, Anda mungkin menyertakan area geografis, seperti AS dan Inggris Raya, dalam URL permintaan. Selanjutnya, Anda dapat mengarahkan permintaan ke endpoint target berdasarkan region.

Aturan rute berikut mengevaluasi header HTTP dalam permintaan. Jika header HTTP routeTo memiliki nilai TargetEndpoint1, permintaan akan diteruskan ke TargetEndpoint yang 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 ditetapkan 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 mengarahkan rute ke endpoint target menggunakan target bersyarat.

Rute null

Rute null mendukung skenario yang membuat pesan permintaan tidak perlu diteruskan ke TargetEndpoint. Hal ini berguna ketika 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