Memahami rute

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

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

Tonton video ini untuk mengenali rute, yang menjelaskan hubungan antara ProxyEndpoint dan TargetEndpoint.

Menentukan URL endpoint proxy API

Gambar berikut menampilkan 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 memiliki bentuk:

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 proxy tersebut ke salah satu atau kedua lingkungan.
  • {base-path} dan {resource-path} ditentukan saat Anda membuat proxy API.

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

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

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

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

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

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

Menentukan URL endpoint target

Tag <RouteRule> dalam definisi ProxyEndpoint menentukan target proxy API, dan dievaluasi setelah semua kebijakan dalam PreFlow, Alur Bersyarat, dan PostFlow permintaan ProxyEndpoint diproses.

ProxyEndpoint dapat menentukan target sebagai:

  • URL langsung ke layanan backend.
  • Definisi TargetEndpoint tunggal.
  • Multiple TargetEndpoint tempat proxy API mendelegasikan permintaan ke endpoint target berdasarkan suatu kondisi.
  • Rute atau target null, artinya permintaan tidak diteruskan ke target. Sebaliknya, semua pemrosesan permintaan, dan pembuatan respons, dilakukan di Edge.

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

URL Langsung

ProxyEndpoint dapat langsung memanggil layanan backend, dengan mengabaikan konfigurasi TargetEndpoint yang diberi nama. 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.

Target tunggal

Dalam satu definisi target, 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> pada 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. Anda dapat menggunakan variabel alur, parameter kueri, 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. Selanjutnya, Anda dapat mengarahkan permintaan ke endpoint target berdasarkan region.

Aturan rute berikut mengevaluasi header HTTP dalam sebuah 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 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