Halaman ini berlaku untuk Apigee dan Apigee Hybrid.
Lihat dokumentasi
Apigee Edge.
Dalam alur bersyarat,
kebijakan hanya dijalankan jika kondisi alur dievaluasi menjadi
true
(berbeda dengan kebijakan yang dilampirkan ke PreFlow atau PostFlow,
yang selalu dijalankan). Bagian ini menjelaskan cara membuat alur bersyarat.
Tentang alur bersyarat
Selama pemrosesan permintaan dan respons, hanya satu alur bersyarat yang dieksekusi per segmen—alur pertama yang kondisinya dievaluasi menjadi true
.
||
(OR) dan &&
(AND). Namun, secara default, operator
||
memiliki prioritas lebih tinggi daripada operator &&
. Misalnya, kondisi yang ditulis
sebagai A && B || C && D
dievaluasi sebagai A && (B || C) && D
. Pastikan untuk
mengapitkan ekspresi dalam tanda kurung jika Anda ingin mengubah prioritas saat menggunakan operator ini.
Contoh berikut mengilustrasikan beberapa cara untuk menggunakan alur bersyarat.
Contoh 1
Definisi ProxyEndpoint berikut menunjukkan alur kondisional yang dieksekusi
oleh ProxyEndpoint pada setiap 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 variabel request.verb
flow. Variabel alur adalah referensi bernama yang menyimpan informasi status yang terkait
dengan transaksi API yang diproses oleh Apigee. Apigee menentukan banyak variabel status yang dapat Anda
referensikan.
Contoh 2
Jika backend layanan Anda menyediakan laporan cuaca dan prakiraan cuaca, API Anda dapat menentukan dua alur kondisional yang dipetakan ke resource API tersebut: /reports
dan /forecasts
. Saat panggilan API
mencakup salah satu resource tersebut dalam URL, kondisi akan bernilai benar dan logika
yang dilampirkan ke alur bersyarat akan dieksekusi.
Developer aplikasi kemudian 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 variabel alur 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.
Contoh: Membuat alur bersyarat
Contoh berikutnya:
- Membuat alur kondisional yang hanya dijalankan saat pesan permintaan
adalah HTTP
GET
. - Menambahkan kebijakan ke alur baru.
Menambahkan alur bersyarat
Editor Proxy Baru
Untuk menambahkan alur kondisional:
- Pilih tab Develop di Editor Proxy.
- Pilih Proxy endpoints > default di panel kiri.
Catatan: Anda mungkin perlu meluaskan editor visual di panel kanan untuk melihat semua elemen. Untuk melakukannya, klik dan tarik pemisah antara editor visual dan editor teks sedikit ke bawah.
- Klik tombol + di atas panel Respons.
- Pada dialog Add conditional flow, pilih Path and verb, lalu di kolom
Path, masukkan akhiran jalur yang Anda inginkan berada di jalur permintaan agar
alur bersyarat dapat dieksekusi. Lihat Contoh 2 di atas.
Alur kondisional hanya dijalankan jika permintaan adalah permintaan
GET
(tetapi tidak untukPUT
,POST
, dll.).Alur baru, yang disebut
Flow-1
, kini muncul di panel Proxy Endpoint. Kode XML untuk alur bersyarat baru ditampilkan di editor teks.
Anda dapat mengedit elemen Kondisi jika ingin. Lihat Menambahkan logika ke alur.
Melampirkan kebijakan ke alur
Setelah membuat alur bersyarat, Anda dapat melampirkan kebijakan ke alur tersebut. Contoh berikutnya menambahkan kebijakan Kuota, yang membatasi jumlah pesan permintaan yang diizinkan oleh proxy API selama jangka waktu tertentu, ke alur:
- Di panel sebelah kiri, klik tombol + di sebelah kanan Kebijakan.
- Di dialog Create policy, klik di kolom Select policy type, lalu scroll ke bawah ke Traffic Management, lalu pilih Quota.
- Klik Buat untuk membuat kebijakan.
- Klik tombol + di samping Flow-1 di panel Request.
- Di dialog Add policy step, klik di kolom Select existing policy lalu pilih Quota-1.
- Klik Tambahkan.
Panel Request kini menampilkan alur dan kebijakan terlampir, Quota-1.
Editor teks kini menampilkan langkah yang berisi kebijakan Quota-1 dalam elemen Flow-1 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 flow bersyarat, pilih tab Develop di builder proxy API.
Klik di endpoint yang diinginkan.
Formulir Alur Kondisional Baru memungkinkan Anda memberi nama alur dan mengonfigurasi kondisi. Dalam
contoh berikut, Anda menambahkan kondisi sederhana yang mengevaluasi HTTP pesan permintaan untuk
kata kerja GET
(berbeda dengan PUT
, POST
, dll.) pada URI apa pun setelah jalur dasar.
(Pelajari cara membuat pernyataan bersyarat di Kondisi dengan variabel alur.)
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>
Setelah membuat alur bersyarat, alur tersebut tersedia untuk lampiran kebijakan. Dengan alur yang dipilih, klik ikon + Langkah dalam 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 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 pola URI .../issue/** (/issue/ dengan apa pun di URI setelah garis miring
terakhir), kuota akan diterapkan pada panggilan API tersebut.
Langkah berikutnya
Topik berikut memberikan detail selengkapnya tentang cara membuat kondisi dan menggunakan variabel: