Halaman ini berlaku untuk Apigee dan Apigee Hybrid.
Baca dokumentasi Apigee Edge.
Dalam alur bersyarat, kebijakan hanya dijalankan jika kondisi flow bernilai true
(bukan kebijakan yang terkait dengan PreFlow atau PostFlow, yang selalu dijalankan). Bagian ini menjelaskan cara membuat alur kondisional.
Tentang alur bersyarat
Selama pemrosesan permintaan dan respons, hanya satu flow 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 bersyarat yang dijalankan 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 merujuk ke variabel flow request.verb
. Variabel alur disebut referensi yang menyimpan informasi status terkait
transaksi API yang diproses oleh Apigee. Apigee mendefinisikan banyak variabel status yang dapat Anda rujuk.
Contoh 2
Jika backend layanan Anda menyediakan laporan cuaca dan perkiraan cuaca, API mungkin 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 true dan logika
yang terkait dengan flow kondisional akan dijalankan.
Kemudian, developer aplikasi dapat 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 flow 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 dari URL yang digunakan untuk mengakses proxy API. Selanjutnya, Anda dapat menerapkan kebijakan yang berbeda pada alur kondisional untuk setiap resource.
Contoh: Membuat flow bersyarat
Contoh berikutnya:
- Membuat flow kondisional yang hanya dieksekusi jika pesan permintaan adalah
GET
HTTP. - Menambahkan kebijakan ke alur baru.
Menambahkan flow 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 elemen. Untuk melakukannya, klik dan tarik pemisah antara editor visual dan editor teks sedikit ke bawah.
- Klik tombol + di atas panel Response.
- Dalam dialog Add kondisional flow, pilih Path and verb, dan di kolom
Path, masukkan akhiran jalur yang Anda inginkan di jalur permintaan agar
alur bersyarat dapat dieksekusi. Lihat Contoh 2 di atas.
Alur kondisional hanya dijalankan jika permintaan adalah permintaan
GET
(tetapi bukan 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 flow.
Melampirkan kebijakan ke alur
Setelah membuat alur kondisional, Anda dapat melampirkan kebijakan padanya. Contoh berikutnya adalah menambahkan kebijakan Kuota, yang membatasi jumlah pesan permintaan yang diizinkan oleh proxy API selama periode waktu tertentu, 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 sebelah Flow-1 di panel Request.
- Pada dialog Add policy step, klik kolom Select existing policy, lalu pilih Quota-1.
- Klik Tambahkan.
Sekarang panel Request menampilkan alur dan kebijakan yang 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 alur 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
(bukan PUT
, POST
, dll.) di URI apa pun setelah jalur dasar.
(Pelajari cara membuat pernyataan kondisional dalam Kondisi dengan variabel alur.)
Flow 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 flow kondisional, alur tersebut akan tersedia untuk lampiran kebijakan. Setelah alur dipilih, klik ikon + Step 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 kata kerja dan URI alur tersebut. Misalnya, jika Anda melampirkan kebijakan ke alur learn dalam permintaan, XML berikut akan dibuat dalam 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 dalam URI setelah garis miring terakhir), kuota akan diterapkan pada panggilan API tersebut.
Langkah berikutnya
Topik berikut memberikan detail selengkapnya mengenai cara membuat kondisi dan menggunakan variabel: