Mengonfigurasi flow

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

Alur adalah elemen penyusun dasar proxy API. Alur memungkinkan Anda memprogram perilaku API dengan mengonfigurasi urutan kebijakan dan kode yang dijalankan oleh proxy API.

Untuk ringkasan konsep alur, lihat Mengontrol cara proxy dieksekusi dengan alur.

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

Melampirkan kebijakan ke alur

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

Contoh:

  • Lampirkan kebijakan keamanan OAuth ke PreFlow permintaan 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 TargetEndpoint untuk mengonversi respons dari JSON ke XML.
  • Lampirkan kebijakan JavaScript ke Alur Bersyarat ProxyEndpoint untuk menjalankan kode JavaScript guna memproses permintaan

Setelah membuat alur bersyarat, alur tersebut akan tersedia untuk lampiran kebijakan. Dengan alur yang dipilih, klik ikon + Langkah di 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 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 URI dan kata kerja 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 ke proxy API dengan pola URI .../issue/** (/issue/ dengan apa pun di URI setelah garis miring terakhir), kuota akan diterapkan pada panggilan API tersebut.

Tentang alur bersyarat

Kebijakan apa pun yang dilampirkan ke PreFlow atau PostFlow akan selalu dijalankan. Namun, kebijakan dalam alur bersyarat hanya dijalankan jika kondisi alur bernilai benar.

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

  • 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 alur bersyarat yang dijalankan oleh ProxyEndpoint pada 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 request.verb variabel alur. Variabel alur diberi nama referensi yang menyimpan informasi status yang terkait dengan transaksi API yang diproses oleh Edge. Edge menentukan banyak variabel status yang dapat Anda referensikan.

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 dapat 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 benar dan logika yang dilampirkan ke alur bersyarat akan dijalankan.

Kemudian, developer aplikasi 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 flow variable 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.

Menambahkan alur bersyarat

Dalam contoh singkat ini, Anda menyiapkan alur yang hanya dijalankan saat pesan permintaan adalah HTTP GET.

Untuk menambahkan alur bersyarat, pilih tab Develop di pembuat proxy API.

Tab Develop di pembuat proxy

Klik ikon + di endpoint yang diinginkan.

Tombol Add conditional flow

Formulir New Conditional Flow 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.) 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 Variabel dan alur kondisi.)

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>

Langkah berikutnya

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