Alur kondisional

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:

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

    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.

  3. Klik tombol + di atas panel Respons.

    Tombol tambahkan alur kondisional

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

    Tombol tambahkan alur kondisional

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

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

    Alur bersyarat yang ditampilkan di endpoint Proxy.

  5. Kode XML untuk alur kondisional 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 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:

  1. Di panel kiri, klik tombol + di sebelah kanan Kebijakan.
  2. Pada dialog Create policy, klik di kolom Select policy type, lalu scroll ke bawah ke Traffic Management dan 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 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 yang dilampirkan, Quota-1.

Panel Permintaan menampilkan alur dan kebijakan Kuota baru.

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

Aliran kondisional 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 alur kondisional, pilih tab Develop di API proxy builder.

Tab Develop pembuat proxy

Klik di endpoint yang diinginkan.

Tombol tambahkan alur kondisional

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.

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

(Pelajari cara membuat pernyataan kondisional 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 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.

Di menu Navigator, contoh alur kondisional bernama masalah ditandai, dan
    di panel Alur, tombol Langkah 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 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: