Alur bersyarat

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:

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

    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.

  3. Klik tombol + di atas panel Response.

    Tombol tambahkan alur bersyarat

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

    Tombol tambahkan alur bersyarat

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

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

    Alur bersyarat ditampilkan di endpoint Proxy.

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

    Alur bersyarat ditampilkan di endpoint Proxy.

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:

  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 sebelah Flow-1 di panel Request.

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

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

Sekarang panel Request menampilkan alur dan kebijakan yang 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 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 bersyarat, pilih tab Develop di builder proxy API.

Tab Kembangkan 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 (bukan PUT, POST, dll.) di URI apa pun setelah jalur dasar.

Di panel New Conditional Flow, alur diberi nama Flow-1, dan jenis kondisi,
    jalur, serta kata kerja dikonfigurasi.

(Pelajari cara membuat pernyataan kondisional dalam Kondisi dengan variabel alur.)

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

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

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

Di panel Add Step, sebuah 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 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: