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 backend yang ditentukan oleh TargetEndpoint.

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

Menentukan URL proxy API titik akhir

Gambar berikut menunjukkan permintaan yang masuk ke ProxyEndpoint dari aplikasi, dan bahwa permintaan yang diarahkan ke layanan backend:

Setelah Anda membuat proxy API di Edge, URL default yang digunakan aplikasi untuk mengakses proxy 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 ketika Anda membuat akun di Edge.
  • {env-name} adalah Nama lingkungan edge. Secara default, semua organisasi Apigee yang dibuat di cloud yang disediakan dengan dua lingkungan: 'test' dan 'prod'. Saat men-deploy proxy API, Anda dapat memilih untuk men-deploynya ke salah satu atau kedua lingkungan.
  • {base-path} dan {base-path} ditentukan jika Anda membuat proxy API.

Ketika permintaan masuk ke Edge, Edge menguraikan URL untuk mengarahkan permintaan ke ProxyEndpoint. 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 bisa melihat bagaimana URL ini diuraikan oleh Edge:

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

    Host virtual menentukan domain dan port tempat proxy API diekspos. {i>Host<i} virtual juga menentukan apakah proxy API diakses dengan menggunakan protokol HTTP, atau dengan protokol HTTPS. Untuk informasi mendetail tentang host virtual, lihat Tentang host virtual (Beta).
  2. Bagian kedua URL, /v1/weather, ditentukan oleh &lt;BasePath&gt; dalam elemen ProxyEndpoint. Jalur dasar harus unik bagi 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 Bersyarat yang sesuai yang ditentukan oleh tag &lt;Flows&gt;.

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

Menentukan URL endpoint target

Tag &lt;RouteRule&gt; dalam Definisi ProxyEndpoint menentukan target proxy API, dan setelah itu dievaluasi kebijakan dalam PreFlow, Alur Bersyarat, dan Aliran Bersyarat dari permintaan ProxyEndpoint diproses.

ProxyEndpoint dapat menentukan target sebagai:

  • URL langsung ke layanan backend.
  • Definisi tunggal TargetEndpoint.
  • Beberapa TargetEndpoint tempat proxy API mendelegasikan permintaan ke target endpoint berdasarkan kondisi.
  • Rute atau target null, artinya 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 TargetEndpoint yang bernama konfigurasi Anda. Misalnya, &lt;RouteRule&gt; berikut selalu membuat pernyataan HTTP panggil 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 menurut nama, seperti yang ditampilkan dalam gambar di atas:

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

Semua permintaan ke proxy API ini diarahkan ke definisi TargetEndpoint yang sama. Tujuan &lt;URL&gt; Anda di TargetEndpoint menentukan lokasi layanan backend. pada gambar di atas, target URL-nya adalah http://weather.yahooapis.com.

Target bersyarat

Tag &lt;RouteRule&gt; memungkinkan Anda mengarahkan permintaan ke target berdasarkan kondisi. Anda dapat menggunakan variabel alur, kueri parameter, 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. Anda kemudian bisa merutekan permintaan ke endpoint target berdasarkan teritorial Anda.

Aturan rute berikut mengevaluasi header HTTP dalam permintaan. Jika header HTTP routeTo memiliki nilai TargetEndpoint1, lalu permintaan 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 sebagai 'default', yaitu sebagai rute aturan 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 di mana pesan permintaan tidak perlu diteruskan TargetEndpoint. Ini berguna ketika {i>ProxyEndpoint<i} melakukan semua pemrosesan yang diperlukan, misalnya dengan menggunakan JavaScript untuk memanggil layanan eksternal.

Contoh berikut menentukan rute null:

<RouteRule name="GoNowhere"/>

Pelajari lebih lanjut