Memahami rute

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

Rute menentukan jalur permintaan dari ProxyEndpoint ke TargetEndpoint. URL ini juga disertakan dalam rute yang digunakan untuk mengakses ProxyEndpoint API 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:

Setelah Anda membuat proxy API di Edge, URL default yang digunakan aplikasi untuk mengakses proxy 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-nya 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 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. Pada 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 oleh protokol HTTPS terenkripsi. Untuk informasi mendetail tentang host virtual, lihat Tentang host virtual (Beta).
  2. Bagian kedua URL, /v1/weather, ditentukan oleh elemen <BasePath> di ProxyEndpoint. Jalur dasar harus unik untuk proxy API untuk lingkungan sehingga dua proxy API 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 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 dalam PreFlow, Alur Bersyarat, dan PostFlow permintaan ProxyEndpoint diproses.

ProxyEndpoint dapat menentukan target sebagai:

  • URL langsung ke layanan backend.
  • Satu definisi TargetEndpoint.
  • Beberapa TargetEndpoints 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 Edge.

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 membuat panggilan HTTP ke http://api.perusahaansaya.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 satu definisi target, ProxyEndpoint mereferensikan 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 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 suatu 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 AS 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