Variabel alur pesan

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Baca dokumentasi Apigee Edge.

Akses ke variabel alur message dan propertinya bergantung pada titik dalam Alur Proxy API tempat variabel diakses. Class ini tersedia dalam semua konteks, sedangkan beberapa objek, seperti request atau response tidak.

Kasus penggunaan

Kasus penggunaan utama untuk variabel alur message adalah saat proxy Anda memasuki alur error: variabel alur request dan response berada di luar cakupan.

Misalnya, dalam alur error, objek response tidak tersedia. Anda tidak akan dapat menetapkan header respons pada objek response dengan kebijakan JavaScript jika berada dalam alur error. Sebagai gantinya, Anda dapat menggunakan salah satu opsi berikut:

Kedua objek ini tersedia dalam alur error, dan dapat digunakan untuk menetapkan header respons dari dalam kebijakan JavaScript atau dapat diakses dalam kebijakan lain yang dapat menggunakan variabel alur.

Anda dapat menggunakan AssignMessage untuk menetapkan nilai, seperti header, ke objek response. TetapkanMessage secara otomatis menangani peralihan dalam konteks dari alur permintaan/respons hingga alur error.

Kasus penggunaan lain untuk variabel message adalah mencatat data respons di PostClientFlow dengan kebijakan MessageLogging. Jika menggunakan objek message, Anda dapat mencatat informasi respons ke dalam log dengan lancar mengikuti kondisi berhasil dan error di proxy.

Contoh

Dalam alur error, Anda dapat menetapkan header respons dari kebijakan JavaScript menggunakan error atau message. Contoh:

context.setVariable('error.header.FOO-1', 'error_header');

ATAU

context.setVariable('message.header.FOO-2', 'message_header');

Namun, ekspresi berikut tidak akan berfungsi:

context.setVariable('response.header.FOO-3', 'response_header');

Dalam hal ini, variabel response berada di luar cakupan dalam alur error. (Perhatikan bahwa, dalam rekaman aktivitas, hal ini ditunjukkan secara visual oleh variabel yang ditampilkan dengan tanda sama dengan yang diberi garis miring.)

Guna menetapkan header respons untuk alur berhasil dan error dalam satu kebijakan, Anda dapat menggunakan message di dalam kebijakan JavaScript. Contoh:

<faultrules>
  <faultrule name="invalid_key_rule">
    <step>
      <name>SetResponseHeaders</name>
    </step>
    <condition>(fault.name = "InvalidApiKey")</condition>
  </faultrule>
</faultrules>

Dalam kebijakan, kode seperti berikut menetapkan header error/respons dalam konteks flow apa pun:

context.setVariable('message.header.FOO-1', 'the header value');

Anda dapat menggunakan kembali kebijakan yang sama ini pada alur ProxyResponse normal dan kebijakan akan berhasil karena message tersedia dari semua konteks.