Halaman ini berlaku untuk Apigee dan Apigee Hybrid.
Lihat dokumentasi
Apigee Edge.
Akses ke variabel alur message dan propertinya bergantung pada titik dalam
Alur Proxy API tempat variabel tersebut diakses. Objek ini tersedia di 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 tidak termasuk dalam cakupan.
Misalnya, dalam alur error, objek response tidak tersedia. Anda tidak akan
dapat menetapkan header respons pada objek response dengan kebijakan JavaScript
jika Anda berada dalam alur error. Sebagai gantinya, Anda dapat menggunakan salah satu hal berikut:
Kedua objek ini tersedia dalam alur error, dan dapat digunakan untuk menyetel header respons dari dalam kebijakan JavaScript atau diakses dalam kebijakan lain yang dapat menggunakan variabel alur.
Anda dapat menggunakan kebijakan AssignMessage untuk menetapkan nilai, seperti header, ke objek respons. AssignMessage secara otomatis menangani peralihan konteks dari alur permintaan/respons ke 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 dengan lancar setelah 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 dicoret.)
Untuk menetapkan header respons bagi alur keberhasilan dan error dalam satu kebijakan, Anda
dapat menggunakan message 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 alur apa pun:
context.setVariable('message.header.FOO-1', 'the header value');Anda dapat menggunakan kembali kebijakan yang sama ini pada alur ProxyResponse normal dan akan berhasil karena
message tersedia dari semua konteks.