Anda melihat dokumentasi Apigee Edge.
Buka
dokumentasi Apigee X. info
Alur adalah elemen penyusun dasar proxy API. Alur memungkinkan Anda memprogram perilaku API dengan mengonfigurasi urutan kebijakan dan kode yang dijalankan oleh proxy API.
Untuk ringkasan konsep alur, lihat Mengontrol cara proxy dieksekusi dengan alur.
Topik ini menjelaskan cara membuat alur bersyarat dan menambahkan logika (kebijakan) ke alur pada tingkat tinggi. Seni membuat kondisi melibatkan lebih banyak detail daripada yang dibahas dalam topik ini. Untuk detail tersebut, lihat Ringkasan variabel alur dan Kondisi dengan variabel alur.
Melampirkan kebijakan ke alur
Edge dilengkapi dengan berbagai jenis kebijakan yang telah ditentukan untuk menerapkan keamanan, mengelola traffic, dan memanipulasi pesan. Selain itu, kebijakan memungkinkan Anda menambahkan kode kustom sendiri untuk sepenuhnya menyesuaikan pemrosesan pesan.
Contoh:
- Lampirkan kebijakan keamanan OAuth ke PreFlow permintaan ProxyEndpoint. Karena PreFlow permintaan ProxyEndpoint adalah alur pertama dalam pipeline, Anda dapat langsung menolak permintaan jika melanggar kebijakan keamanan Anda.
- Lampirkan kebijakan konversi JSON ke XML ke PostFlow respons TargetEndpoint untuk mengonversi respons dari JSON ke XML.
- Lampirkan kebijakan JavaScript ke Alur Bersyarat ProxyEndpoint untuk menjalankan kode JavaScript guna memproses permintaan
Setelah membuat alur bersyarat, alur tersebut akan tersedia untuk lampiran kebijakan. Dengan alur yang dipilih, klik ikon + Langkah di diagram permintaan atau respons untuk menambahkan kebijakan baru atau yang sudah ada ke alur.


Dengan melampirkan kebijakan ke alur yang dipilih, Anda mengonfigurasi proxy API untuk menerapkan kebijakan Kuota hanya untuk permintaan yang dibuat ke kombinasi URI dan kata kerja alur tersebut. Misalnya, jika Anda melampirkan kebijakan ke alur learn dalam permintaan, XML berikut akan dibuat dalam tampilan kode editor proxy:
<ProxyEndpoint name="default">
...
<Flow name="issue">
<Description/>
<Request>
<Step>
<Name>Quota-2</Name>
</Step>
</Request>
<Response/>
<Condition>(proxy.pathsuffix MatchesPath "/issue/**") and (request.verb = "GET")</Condition>
</Flow>
...
</ProxyEndpoint>Dalam konfigurasi ini, jika permintaan GET masuk ke proxy API dengan pola URI .../issue/** (/issue/ dengan apa pun di URI setelah garis miring terakhir), kuota akan diterapkan pada panggilan API tersebut.
Tentang alur bersyarat
Kebijakan apa pun yang dilampirkan ke PreFlow atau PostFlow akan selalu dijalankan. Namun, kebijakan dalam alur bersyarat hanya dijalankan jika kondisi alur bernilai benar.
Selama pemrosesan permintaan dan respons, hanya satu alur bersyarat yang dijalankan per segmen--alur pertama yang kondisinya bernilai benar. Artinya, Anda dapat menjalankan satu alur bersyarat sebagai bagian dari setiap:
- Pipeline permintaan ProxyEndpoint
- Pipeline permintaan TargetEndpoint
- Pipeline respons ProxyEndpoint
- Pipeline respons TargetEndpoint
Video: Tonton video singkat untuk mempelajari lebih lanjut alur bersyarat.
Misalnya, definisi ProxyEndpoint berikut menunjukkan alur bersyarat yang dijalankan
oleh ProxyEndpoint pada permintaan HTTP GET ke proxy API:
<ProxyEndpoint name="default">
<PreFlow>
<Request/>
<Response/>
</PreFlow>
<Flows>
<Flow name="Flow-1">
<Condition>request.verb="GET"</Condition>
<Request/>
<Response/>
</Flow>
</Flows>
<PostFlow>
<Request/>
<Response/>
</PostFlow>
...
</ProxyEndpoint>Perhatikan bahwa kondisi tersebut mereferensikan request.verb variabel alur. Variabel alur diberi nama referensi yang menyimpan informasi status yang terkait dengan transaksi API yang diproses oleh Edge. Edge menentukan banyak variabel status yang dapat Anda referensikan.
Layanan RESTful adalah kumpulan resource API. Resource API adalah fragmen jalur URI
yang mengidentifikasi beberapa entity yang dapat diakses developer dengan memanggil API Anda. Misalnya, jika backend layanan Anda menyediakan laporan cuaca dan perkiraan cuaca, API Anda dapat menentukan dua alur bersyarat yang dipetakan ke resource API tersebut: /reports dan /forecasts. Saat panggilan API
menyertakan salah satu resource tersebut di URL, kondisi akan bernilai benar dan logika
yang dilampirkan ke alur bersyarat akan dijalankan.
Kemudian, developer aplikasi mengakses resource Anda dengan membuat permintaan ke URL dalam bentuk:
http://myAPIs.myCo.com/weather/reports
atau:
http://myAPIs.myCo.com/weather/forecasts
Di proxy API, Anda dapat menentukan alur bersyarat yang sesuai dengan resource tertentu:
<ProxyEndpoint name="default">
<PreFlow>
<Request/>
<Response/>
</PreFlow>
<Flows>
<Flow name="Flow-1">
<Condition>(proxy.pathsuffix MatchesPath "/reports")</Condition>
<Request/>
<Response/>
</Flow>
<Flow name="Flow-2">
<Condition>(proxy.pathsuffix MatchesPath "/forecasts")</Condition>
<Request/>
<Response/>
</Flow>
</Flows>
<PostFlow>
<Request/>
<Response/>
</PostFlow>
...
</ProxyEndpoint>Dalam contoh ini, Anda mereferensikan flow variable proxy.pathsuffix, yang berisi bagian akhiran URL yang digunakan untuk mengakses Proxy API. Kemudian, Anda dapat melampirkan
kebijakan yang berbeda ke alur bersyarat untuk setiap resource.
Menambahkan alur bersyarat
Dalam contoh singkat ini, Anda menyiapkan alur yang hanya dijalankan saat pesan permintaan adalah HTTP GET.
Untuk menambahkan alur bersyarat, pilih tab Develop di pembuat proxy API.

Klik ikon + di endpoint yang diinginkan.

Formulir New Conditional Flow memungkinkan Anda memberi nama alur dan mengonfigurasi kondisi. Dalam
contoh berikut, Anda menambahkan kondisi sederhana yang mengevaluasi HTTP pesan permintaan untuk
kata kerja GET (bukan PUT, POST, dll.) pada URI apa pun setelah jalur dasar.

(Pelajari cara membuat pernyataan bersyarat di Variabel dan alur kondisi.)
Alur baru, yang disebut Flow-1, kini muncul di menu Navigator.

Sekarang, amati konfigurasi XML untuk ProxyEndpoint. Pilih Flow-1 di menu Navigator.
Anda akan melihat konfigurasi berikut.
<PreFlow name="PreFlow">
<Request/>
<Response/>
</PreFlow>
<Flows>
<Flow name="Flow-1">
<Request/>
<Response/>
<Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition>
</Flow>
</Flows>
<PostFlow name="PostFlow">
<Request/>
<Response/>
</PostFlow>Langkah berikutnya
Topik berikut memberikan detail selengkapnya tentang membuat kondisi dan menggunakan variabel: