Alur bersyarat

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:

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

    Pilih Endpoint proxy > secara 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.

  3. Klik tombol + di atas panel Response.

    Tombol tambahkan alur bersyarat

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

    Tombol tambahkan alur bersyarat

    Alur bersyarat hanya dijalankan jika permintaan permintaan GET (tetapi bukan untuk PUT, POST, dll.).

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

    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 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:

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

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

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

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

Panel permintaan yang menampilkan alur baru dan kebijakan Kuota.

Editor teks sekarang menampilkan langkah yang berisi kebijakan Quota-1 di Elemen Flow-1 dari XML:

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

Tab Pengembangan pembuat proxy

Klik di endpoint yang diinginkan.

Tombol tambahkan alur bersyarat

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.

Di panel Alur Bersyarat Baru, alur diberi nama Alur-1, dan jenis kondisi,
    path, dan verba dikonfigurasi.

(Pelajari cara membuat pernyataan bersyarat dalam Kondisi dengan variabel flow.)

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

Flow-1 disorot

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.

Di menu Navigator, contoh alur bersyarat yang disebut masalah ditandai, dan
    di panel Flow, tombol Step akan ditampilkan.

Di panel Add Step, instance kebijakan baru dibuat dengan jenis kebijakan Quota dan
    nama tampilan Quota-2.

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: