Mengonfigurasi flow

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Flow adalah elemen penyusun dasar proxy API. Flow memungkinkan Anda memprogram perilaku API dengan memungkinkan Anda mengonfigurasi urutan eksekusi kebijakan dan kode oleh proxy API.

Untuk ringkasan konseptual tentang flow, lihat Mengontrol cara proxy dijalankan dengan flow.

Topik ini menjelaskan cara membuat alur bersyarat dan menambahkan logika (kebijakan) ke alur secara tingkat tinggi. Seni membuat kondisi mencakup lebih banyak detail daripada yang dibahas dalam topik ini. Untuk mengetahui detail tersebut, lihat Ringkasan variabel alur dan Kondisi dengan variabel alur.

Melampirkan kebijakan ke flow

Edge dilengkapi dengan berbagai jenis kebijakan yang telah ditetapkan untuk menerapkan keamanan, mengelola traffic, dan memanipulasi pesan. Selain itu, kebijakan memungkinkan Anda menambahkan kode kustom sendiri untuk menyesuaikan pemrosesan pesan sepenuhnya.

Contoh:

  • Lampirkan kebijakan keamanan OAuth ke Permintaan PreFlow ProxyEndpoint. Karena PreFlow permintaan ProxyEndpoint adalah alur pertama dalam pipeline, Anda dapat langsung menolak permintaan jika melanggar kebijakan keamanan Anda.
  • Lampirkan kebijakan konversi JSON ke XML ke PostFlow respons dari TargetEndpoint untuk mengonversi respons dari JSON ke XML.
  • Lampirkan kebijakan JavaScript ke Alur Bersyarat ProxyEndpoint untuk mengeksekusi kode JavaScript guna memproses permintaan

Setelah dibuat, alur bersyarat akan tersedia untuk lampiran kebijakan. Setelah alur dipilih, klik ikon + Step dalam diagram permintaan atau respons untuk menambahkan kebijakan baru atau yang sudah ada ke alur.

Di menu Navigator, contoh flow kondisional bernama issue ditandai, dan
    di panel Flow, tombol Step 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 ke kombinasi kata kerja dan URI alur tersebut. Misalnya, jika Anda melampirkan kebijakan ke alur learn dalam permintaan, XML berikut akan dibuat dalam tampilan kode editor proxy:

<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 pada proxy API dengan pola URI .../issue/** (/issue/ dengan apa pun dalam URI setelah garis miring terakhir), kuota diterapkan pada panggilan API tersebut.

Tentang alur bersyarat

Kebijakan apa pun yang terkait dengan PreFlow atau PostFlow selalu dieksekusi. Namun, kebijakan dalam flow kondisional hanya dijalankan jika kondisi flow bernilai benar (true).

Selama pemrosesan permintaan dan respons, hanya satu alur bersyarat yang dijalankan per segmen--alur pertama yang kondisinya bernilai benar (true). Artinya, Anda dapat menjalankan satu flow kondisional sebagai bagian dari setiap alur:

  • Pipeline permintaan ProxyEndpoint
  • Pipeline permintaan TargetEndpoint
  • Pipeline respons ProxyEndpoint
  • Pipeline respons TargetEndpoint

Video: Tonton video singkat untuk mempelajari lebih lanjut alur bersyarat.

Misalnya, definisi ProxyEndpoint berikut menunjukkan flow 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 merujuk ke variabel flow request.verb. Variabel flow diberi nama referensi yang menyimpan informasi status terkait dengan transaksi API yang diproses oleh Edge. Edge menentukan banyak variabel status yang dapat Anda rujuk.

Layanan RESTful adalah kumpulan resource API. Resource API adalah fragmen jalur URI yang mengidentifikasi beberapa entity yang dapat diakses developer dengan memanggil API Anda. Misalnya, jika backend layanan Anda menyediakan laporan cuaca dan perkiraan cuaca, API Anda 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 dievaluasi ke true dan logika yang terkait dengan flow kondisional dijalankan.

Developer aplikasi kemudian mengakses resource Anda dengan membuat permintaan ke URL dalam format:

http://myAPIs.myCo.com/weather/reports

atau:

http://myAPIs.myCo.com/weather/forecasts

Dalam 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 melampirkan kebijakan yang berbeda pada alur bersyarat untuk setiap resource.

Menambahkan alur bersyarat

Dalam contoh singkat ini, Anda akan menyiapkan flow yang hanya dijalankan jika pesan permintaan adalah HTTP GET.

Untuk menambahkan flow kondisional, pilih tab Develop di builder proxy API.

Tab Pengembangan pembuat proxy

Klik ikon + 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 Alur Bersyarat Baru, alur diberi nama Flow-1, serta jenis kondisi,
    jalur, dan kata kerja dikonfigurasi.

(Pelajari cara membuat pernyataan kondisional dalam Variabel dan kondisi flow.)

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>

Langkah berikutnya

Topik-topik berikut memberikan detail selengkapnya tentang membuat kondisi dan menggunakan variabel: