Memahami rute

Anda sedang melihat dokumentasi Apigee Edge.
Lihat dokumentasi Apigee X.

Rute menentukan jalur permintaan dari ProxyEndpoint ke TargetEndpoint. Yang disertakan dalam rute ini adalah URL yang digunakan untuk mengakses API ProxyEndpoint dan URL layanan backend yang ditentukan oleh TargetEndpoint.

Tonton video ini untuk pengantar tentang 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 Edge, URL default yang digunakan aplikasi untuk mengakses proxy akan berbentuk:

http://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}

https://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}

dalam hal ini:

  • {org-name} adalah nama organisasi Anda. Nama ini dibuat saat Anda membuat akun di Edge.
  • {env-name} adalah nama lingkungan Edge. Secara default, semua organisasi Apigee yang dibuat di cloud disediakan dengan dua lingkungan: 'test' dan 'prod'. Saat men-deploy proxy API, Anda dapat memilih untuk men-deploy-nya ke salah satu atau kedua lingkungan.
  • {base-path} dan {resource-path} ditentukan saat Anda membuat proxy API.

Saat permintaan masuk ke Edge, Edge mengurai URL untuk mengarahkan permintaan ke ProxyEndpoint yang benar. Misalnya, URL berikut digunakan untuk mengakses proxy API di Edge:

http://myOrg-prod.apigee.net/v1/weather/forecastrss

Jika memeriksa definisi ProxyEndpoint untuk proxy API pada gambar di atas, Anda dapat melihat cara URL ini diuraikan oleh Edge:

  1. Bagian domain URL, http://myOrg-prod.apigee.net, sesuai dengan host virtual di Edge. Pada definisi ProxyEndpoint di atas, proxy API menggunakan tag <VirtualHost> untuk mereferensikan host virtual bernama default. Anda dapat menentukan beberapa host virtual di lingkungan Anda.

    Host virtual menentukan domain dan port tempat proxy API diekspos. Host virtual juga menentukan apakah proxy API diakses dengan menggunakan protokol HTTP, atau oleh protokol HTTPS terenkripsi. Untuk mengetahui informasi selengkapnya tentang host virtual, lihat Tentang host virtual (Beta).
  2. Bagian kedua dari URL, /v1/cuaca, ditentukan oleh elemen <BasePath> di ProxyEndpoint. Jalur dasar harus unik untuk proxy API lingkungan, sehingga dua proxy API tidak memiliki jalur dasar yang sama.
  3. Bagian ketiga dari URL, /forecastrss, adalah resource yang ditentukan oleh proxy API dengan Alur Kondisional yang sesuai yang ditentukan oleh tag <Flows>.

Video: Tonton video singkat untuk mempelajari endpoint proxy API lebih lanjut.

Menentukan URL endpoint target

Tag <RouteRule> dalam definisi ProxyEndpoint menentukan target proxy API, dan dievaluasi setelah semua kebijakan di PreFlow, conditional Flows, dan PostFlow dari permintaan ProxyEndpoint diproses.

ProxyEndpoint dapat menentukan target sebagai:

  • URL langsung ke layanan backend.
  • Definisi TargetEndpoint tunggal.
  • Beberapa TargetEndpoint tempat proxy API mendelegasikan permintaan ke endpoint target berdasarkan kondisi.
  • Rute atau target null, artinya permintaan tidak diteruskan ke target. Sebagai gantinya, semua pemrosesan permintaan, dan pembuatan respons, akan terjadi di Edge.

Video: Tonton video singkat untuk mempelajari endpoint target lebih lanjut.

URL Langsung

ProxyEndpoint dapat langsung memanggil layanan backend, serta mengabaikan konfigurasi TargetEndpoint yang bernama. Misalnya, <RouteRule> berikut selalu melakukan panggilan HTTP ke http://api.mycompany.com/myAPI:

<RouteRule name="default">
  <URL>http://api.mycompany.com/myAPI</URL> 
</RouteRule>

Namun, karena tidak ada TargetEndpoint, Anda hanya dapat menambahkan kebijakan ke alur yang ditentukan oleh ProxyEndpoint.

Satu target

Dalam definisi target tunggal, ProxyEndpoint merujuk pada satu definisi TargetEndpoint berdasarkan nama, seperti yang ditunjukkan pada gambar di atas:

<RouteRule name="default">
  <TargetEndpoint>default</TargetEndpoint>
</RouteRule>

Semua permintaan ke proxy API ini akan diarahkan ke definisi TargetEndpoint yang sama. Tag <URL> di TargetEndpoint menentukan lokasi layanan backend. Pada gambar di atas, URL targetnya adalah http://cuaca.yahooapis.com.

Target bersyarat

Tag <RouteRule> memungkinkan Anda mengarahkan permintaan ke target berdasarkan kondisi. Anda dapat menggunakan variabel flow, parameter kueri, header HTTP, konten pesan, atau informasi kontekstual seperti waktu dan lokalitas untuk menentukan endpoint target. Misalnya, Anda dapat 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 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 aturan tersebut sebagai 'default', yaitu sebagai aturan rute tanpa kondisi. Pastikan bahwa aturan rute default didefinisikan terakhir di 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 ke TargetEndpoint. Hal ini berguna saat ProxyEndpoint melakukan semua pemrosesan yang diperlukan, misalnya menggunakan JavaScript untuk memanggil layanan eksternal.

Contoh berikut menentukan rute null:

<RouteRule name="GoNowhere"/>

Mempelajari lebih lanjut