Memahami rute

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:

Permintaan klien HTTP melalui proxy API di Apigee ke layanan HTTP, lalu
    respons melalui 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 cara URL ini diuraikan:

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