Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat Dokumentasi Apigee Edge.
Dalam alur bersyarat,
hanya akan dijalankan jika kondisi alur bernilai
true
(tidak seperti kebijakan yang dilampirkan pada PreFlow atau PostFlow,
yang selalu dieksekusi). Bagian ini menjelaskan cara membuat alur kondisional.
Tentang alur bersyarat
Selama pemrosesan permintaan dan respons, hanya satu alur bersyarat yang dijalankan per
segmen—alur pertama yang kondisinya bernilai true
.
Contoh berikut mengilustrasikan beberapa cara untuk menggunakan alur bersyarat.
Contoh 1
Definisi ProxyEndpoint berikut menunjukkan alur kondisional yang dijalankan
oleh ProxyEndpoint pada permintaan HTTP GET
apa pun 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
alur
variabel. Variabel aliran disebut sebagai referensi yang menyimpan informasi status yang terkait
dengan transaksi API yang diproses oleh Apigee. Apigee menentukan banyak variabel status yang dapat Anda
alamat IP internal.
Contoh 2
Jika
backend layanan menyediakan laporan cuaca dan prakiraan cuaca, API Anda mungkin menentukan
alur bersyarat yang dipetakan ke API tersebut
resource: /reports
dan /forecasts
. Saat panggilan API
menyertakan salah satu resource di URL, kondisi bernilai true dan logika
yang disertakan ke alur bersyarat akan dieksekusi.
Developer aplikasi kemudian mengakses resource Anda dengan membuat permintaan ke URL dalam formulir:
http://myAPIs.myCo.com/weather/reports
atau:
http://myAPIs.myCo.com/weather/forecasts
Di proxy API, Anda bisa mendefinisikan alur kondisional yang sesuai dengan referensi:
<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 variabel alur proxy.pathsuffix
,
yang berisi bagian akhiran URL yang digunakan untuk mengakses proxy API. Kemudian, Anda dapat melampirkan
kebijakan yang berbeda ke aliran bersyarat
untuk setiap resource.
Contoh: Membuat alur bersyarat
Contoh berikutnya:
- Membuat alur bersyarat yang dijalankan hanya saat pesan permintaan
adalah
GET
HTTP. - Menambahkan kebijakan ke alur baru.
Menambahkan alur bersyarat
Editor Proxy Baru
Untuk menambahkan alur bersyarat:
- Pilih tab Develop di Proxy Editor.
- Pilih Proxy endpoint > default di panel sebelah kiri.
Catatan: Anda mungkin perlu meluaskan editor visual di panel sebelah kanan untuk melihat semua yang kurang penting. Untuk melakukannya, klik dan seret {i>divider<i} antara editor visual dan editor teks turun sedikit.
- Klik tombol + di atas panel Response.
- Dalam dialog Add kondisional flow, pilih Path and verb, dan di bagian
Path, masukkan akhiran jalur yang Anda inginkan di jalur permintaan untuk
alur kondisional untuk dieksekusi. Lihat Contoh 2 di atas.
Alur bersyarat hanya dijalankan jika permintaan permintaan
GET
(tetapi bukan untukPUT
,POST
, dll.).Flow baru, yang disebut
Flow-1
, kini muncul di panel Endpoint Proxy. Kode XML untuk alur bersyarat baru ditampilkan di editor teks.
Anda dapat mengedit elemen Condition jika mau. Lihat Menambahkan logika ke flow.
Melampirkan kebijakan ke alur
Setelah membuat alur kondisional, Anda dapat melampirkan kebijakan ke alur tersebut. Contoh berikutnya menambahkan kebijakan Kuota, yang membatasi jumlah pesan permintaan yang diizinkan oleh proxy API periode waktu, ke alur:
- Di panel kiri, klik tombol + di sebelah kanan Policies.
- Pada dialog Create policy, klik kolom Select policy type, lalu scroll ke bawah ke Traffic Management, lalu pilih Quota.
- Klik Create untuk membuat kebijakan.
- Klik tombol + di samping Flow-1 di panel Request.
- Pada dialog Add policy step, klik kolom Select existing policy lalu pilih Quota-1.
- Klik Tambahkan.
Panel Request sekarang menampilkan alur dan kebijakan yang terlampir, Quota-1.
Editor teks sekarang menampilkan langkah yang berisi kebijakan Quota-1 di Elemen Flow-1 dari XML:
Dengan konfigurasi ini, kebijakan Kuota akan diterapkan untuk permintaan GET
.
Permintaan jenis lain tidak akan berkontribusi pada jumlah maksimum permintaan dalam kebijakan Kuota.
Editor Proxy Klasik
Untuk menambahkan alur kondisional, pilih tab Develop di builder proxy API.
Klik di endpoint yang diinginkan.
Formulir Alur Bersyarat Baru memungkinkan Anda memberi nama alur dan mengonfigurasi kondisi. Di kolom
pada 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 dalam Kondisi dengan variabel flow.)
Flow baru, yang disebut Flow-1
, kini muncul di menu Navigator.
Sekarang amati konfigurasi XML untuk ProxyEndpoint. Pilih Flow-1 di 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>
Setelah Anda membuat alur bersyarat, alur tersebut akan tersedia untuk lampiran kebijakan. Dengan aliran dipilih, klik ikon + Langkah di diagram permintaan atau respons untuk menambahkan kebijakan baru atau yang sudah ada.
Dengan melampirkan kebijakan ke alur yang dipilih, Anda mengonfigurasi proxy API untuk menerapkan Kebijakan kuota hanya untuk permintaan yang dibuat pada kombinasi kata kerja dan URI alur tersebut. Misalnya, jika Anda lampirkan kebijakan ke alur learn dalam permintaan, XML berikut adalah yang dibuat di editor teks:
<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 di proxy API dengan URI
pola .../issue/** (/issue/ dengan apa pun dalam URI setelah penerusan terakhir
garis miring), kuota diberlakukan pada panggilan API tersebut.
Langkah berikutnya
Topik-topik berikut memberikan detail lebih lanjut tentang bagaimana menyusun kondisi dan menggunakan variabel: