Mengonfigurasi flow

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

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

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

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

Melampirkan kebijakan ke alur

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

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.
  • 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 mengeksekusi kode JavaScript guna memproses permintaan

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

Tentang alur bersyarat

Setiap kebijakan yang dilampirkan ke PreFlow atau PostFlow selalu dieksekusi. Namun, kebijakan dalam alur bersyarat hanya dieksekusi jika kondisi alur bernilai benar (true).

Selama pemrosesan permintaan dan respons, hanya satu alur kondisional yang dieksekusi per segmen, yaitu alur pertama yang kondisinya dievaluasi menjadi benar. Artinya, Anda dapat memiliki satu alur kondisional yang dijalankan sebagai bagian dari setiap:

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

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

Misalnya, 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 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 entitas yang dapat diakses developer dengan memanggil API Anda. Misalnya, jika backend layanan Anda menyediakan laporan cuaca dan prakiraan cuaca, API Anda mungkin menentukan dua alur kondisional yang dipetakan ke resource API tersebut: /reports dan /forecasts. Jika panggilan API menyertakan salah satu resource tersebut di URL, kondisi akan bernilai true (benar) dan logika yang dikaitkan ke alur kondisional akan dijalankan.

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. Selanjutnya, Anda dapat melampirkan kebijakan yang berbeda ke alur kondisional untuk setiap resource.

Menambahkan alur bersyarat

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

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

Tab Develop pembuat proxy

Klik ikon + di endpoint yang diinginkan.

Tombol tambahkan alur kondisional

Formulir Alur Bersyarat 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 dalam Variabel dan kondisi flow.)

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 cara membuat kondisi dan menggunakan variabel: