Alur kondisional

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.

Anda dapat membuat kondisi yang menyertakan operator ||(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:

  1. Pilih tab Develop di Editor Proxy.
  2. Pilih Proxy endpoints > default di panel kiri.

    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.

  3. Klik tombol + di atas panel Respons.

    Tombol tambahkan alur bersyarat

  4. 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.

    Tombol tambahkan alur bersyarat

    Alur kondisional hanya dijalankan jika permintaan adalah permintaan GET (tetapi tidak untuk PUT, POST, dll.).

    Alur baru, yang disebut Flow-1, kini muncul di panel Proxy Endpoint.

    Alur bersyarat yang ditampilkan di Endpoint proxy.

  5. Kode XML untuk alur bersyarat baru ditampilkan di editor teks.

    Alur bersyarat yang ditampilkan di Endpoint proxy.

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:

  1. Di panel sebelah kiri, klik tombol + di sebelah kanan Kebijakan.
  2. Di dialog Create policy, klik di kolom Select policy type, lalu scroll ke bawah ke Traffic Management, lalu pilih Quota.
  3. Klik Buat untuk membuat kebijakan.
  4. Klik tombol + di samping Flow-1 di panel Request.

    Klik tombol plus di samping Flow-1 di panel Permintaan.

  5. Di dialog Add policy step, klik di kolom Select existing policy lalu pilih Quota-1.
  6. Klik Tambahkan.

Panel Request kini menampilkan alur dan kebijakan terlampir, Quota-1.

Panel permintaan yang menampilkan alur baru dan kebijakan Kuota.

Editor teks kini menampilkan langkah yang berisi kebijakan Quota-1 dalam elemen Flow-1 XML:

Alur bersyarat dan kebijakan Kuota yang ditampilkan dalam 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.

Tab Develop pembuat proxy

Klik di endpoint yang diinginkan.

Tombol tambahkan alur bersyarat

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.

Di panel Alur Kondisional Baru, alur diberi nama Flow-1, dan jenis kondisi,
    jalur, dan kata kerja dikonfigurasi.

(Pelajari cara membuat pernyataan bersyarat di Kondisi dengan variabel alur.)

Alur baru, yang disebut Flow-1, kini muncul di menu Navigator.

Flow-1 ditandai

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.

Di menu Navigator, contoh alur bersyarat bernama issue ditandai, dan
    di panel Flow, tombol Step ditampilkan.

Di panel Tambahkan Langkah, instance kebijakan baru dibuat dengan jenis kebijakan Kuota dan
    nama tampilan Kuota-2.

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: