Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat dokumentasi Apigee Edge.
Dalam alur bersyarat,
kebijakan hanya dieksekusi jika kondisi alur dievaluasi menjadi
true
(bukan kebijakan yang dilampirkan ke 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 dieksekusi per segmen—alur pertama yang kondisinya dievaluasi menjadi true
.
Contoh berikut mengilustrasikan beberapa cara menggunakan alur kondisional.
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 mereferensikan variabel
alur request.verb
. 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
menyertakan salah satu resource tersebut di URL, kondisi akan dievaluasi menjadi benar dan logika
yang dilampirkan ke alur kondisional akan dieksekusi.
Kemudian, developer aplikasi akan 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 kondisional 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 dieksekusi jika pesan permintaan adalah
GET
HTTP. - Menambahkan kebijakan ke alur baru.
Menambahkan alur kondisional
Editor Proxy Baru
Untuk menambahkan alur kondisional:
- Pilih tab Develop di Proxy Editor.
- Pilih Endpoint proxy > 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, dan di kolom Path, masukkan akhiran jalur yang ingin Anda masukkan ke jalur permintaan agar alur bersyarat dapat dieksekusi. Lihat Contoh 2 di atas.
Alur kondisional hanya dieksekusi jika permintaan adalah permintaan
GET
(tetapi tidak untukPUT
,POST
, dll.).Alur baru, yang disebut
Flow-1
, kini muncul di panel Endpoint Proxy. Kode XML untuk alur kondisional baru ditampilkan di editor teks.
Anda dapat mengedit elemen Kondisi jika ingin. Lihat Menambahkan logika ke alur.
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 proxy API selama jangka waktu tertentu, ke alur:
- Di panel kiri, klik tombol + di sebelah kanan Kebijakan.
- Pada dialog Create policy, klik di kolom Select policy type, lalu scroll ke bawah ke Traffic Management dan pilih Quota.
- Klik Create 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 yang dilampirkan, Quota-1.
Editor teks kini menampilkan langkah yang berisi kebijakan Quota-1 di elemen XML Flow-1:
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 API proxy builder.
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
(bukan PUT
, POST
, dll.) di URI mana pun setelah jalur dasar.
(Pelajari cara membuat pernyataan kondisional 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 Anda membuat alur bersyarat, alur tersebut akan tersedia untuk lampiran kebijakan. Setelah alur 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 URI alur dan kombinasi kata kerja tersebut. Misalnya, jika Anda melampirkan kebijakan ke alur pelajari dalam permintaan, XML berikut akan dihasilkan 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
depan terakhir), kuota akan diterapkan pada panggilan API tersebut.
Langkah berikutnya
Topik berikut memberikan detail selengkapnya tentang cara membuat kondisi dan menggunakan variabel: