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 dengan memungkinkan Anda mengonfigurasi urutan kebijakan dan kode yang dijalankan oleh API {i>proxy<i}.

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 pada level yang lebih tinggi. Seni menciptakan kondisi melibatkan lebih banyak detail daripada yang dibahas dalam topik. Untuk detail tersebut, lihat Ringkasan alur variabel dan Kondisi dengan variabel flow.

Melampirkan kebijakan ke flow

Edge dilengkapi dengan berbagai jenis kebijakan yang telah ditentukan untuk menerapkan keamanan, lalu lintas, dan memanipulasi pesan. Selain itu, kebijakan memungkinkan Anda menambahkan kode kustom Anda sendiri ke dapat menyesuaikan pemrosesan pesan.

Contoh:

  • Lampirkan kebijakan keamanan OAuth ke PreFlow permintaan dari ProxyEndpoint. Karena PreFlow permintaan ProxyEndpoint adalah alur pertama dalam pipeline, Anda dapat segera 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 perintah Bersyarat Alur ProxyEndpoint untuk mengeksekusi kode JavaScript guna memproses minta

Setelah Anda membuat alur bersyarat, alur tersebut akan tersedia untuk lampiran kebijakan. Dengan aliran dipilih, klik ikon + Langkah di diagram permintaan atau respons untuk menambahkan kebijakan baru atau yang sudah ada.

Di menu Navigator, contoh alur bersyarat yang disebut masalah ditandai, dan
    di panel Flow, tombol Step akan 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 pada kombinasi kata kerja dan URI alur tersebut. Misalnya, jika Anda lampirkan kebijakan ke alur learn dalam permintaan, XML berikut adalah yang 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 URI pola .../issue/** (/issue/ dengan apa pun dalam URI setelah penerusan terakhir garis miring), kuota diberlakukan pada panggilan API tersebut.

Tentang alur bersyarat

Setiap kebijakan yang terkait dengan PreFlow atau PostFlow selalu dijalankan. Namun, kebijakan dalam flow kondisional dijalankan hanya 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. Itu berarti Anda dapat memiliki satu alur bersyarat yang dijalankan 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 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 alur request.verb variabel. Variabel aliran disebut sebagai referensi yang menyimpan informasi status yang terkait dengan transaksi API yang diproses oleh Edge. Edge mendefinisikan banyak variabel status yang dapat Anda alamat IP internal.

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 menyediakan laporan cuaca dan prakiraan cuaca, API Anda mungkin menentukan alur bersyarat yang dipetakan ke API tersebut resource: /reports dan /forecasts. Saat panggilan API menyertakan salah satu resource di URL, kondisi bernilai true dan logika yang disertakan ke alur bersyarat akan dieksekusi.

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

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

atau:

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

Di proxy API, Anda bisa mendefinisikan alur kondisional yang sesuai dengan referensi:

<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 aliran bersyarat untuk setiap resource.

Menambahkan alur bersyarat

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

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

Tab Pengembangan pembuat proxy

Klik ikon + di endpoint yang diinginkan.

Tombol tambahkan alur bersyarat

Formulir Alur Bersyarat Baru memungkinkan Anda memberi nama alur dan mengonfigurasi kondisi. Di kolom pada 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 Bersyarat Baru, alur diberi nama Alur-1, dan jenis kondisi,
    path, dan verba dikonfigurasi.

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

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

Flow-1 disorot

Sekarang amati konfigurasi XML untuk ProxyEndpoint. Pilih Flow-1 di 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 lebih lanjut tentang bagaimana menyusun kondisi dan menggunakan variabel: