Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Quyền truy cập vào biến luồng message
và các thuộc tính của biến này phụ thuộc vào điểm trong
Luồng proxy API nơi truy cập API. Tính năng này có sẵn trong mọi ngữ cảnh, trong khi một số đối tượng,
như request
hoặc response
thì không.
Trường hợp sử dụng
Trường hợp sử dụng chính cho biến luồng message
là khi proxy của bạn nhập
luồng lỗi: các biến luồng request
và response
nằm ngoài phạm vi.
Ví dụ: trong luồng lỗi, đối tượng response
không xuất hiện. Bạn sẽ không
có thể đặt tiêu đề phản hồi trên đối tượng response
bằng chính sách JavaScript
nếu bạn đang gặp lỗi. Thay vào đó, bạn có thể sử dụng một trong những cách sau:
Cả hai đối tượng này đều có trong luồng lỗi và có thể được dùng để đặt phản hồi tiêu đề trong một chính sách JavaScript hoặc có thể truy cập được trong các chính sách khác có thể sử dụng flow biến.
Bạn có thể dùng assignMessage chính sách để gán các giá trị, chẳng hạn như tiêu đề, vào đối tượng response (phản hồi). Gán tin nhắn sẽ tự động xử lý việc chuyển đổi trong ngữ cảnh từ quy trình yêu cầu/phản hồi đến quy trình lỗi.
Một trường hợp sử dụng khác cho biến message
là ghi nhật ký dữ liệu phản hồi trong
PostClientFlow có chính sách MessageLogging. Nếu sử dụng đối tượng message
,
bạn có thể ghi lại thông tin phản hồi liền mạch theo cả điều kiện thành công và lỗi trong
proxy.
Ví dụ
Trong một luồng lỗi, bạn có thể đặt tiêu đề phản hồi trong một chính sách JavaScript bằng cách sử dụng
error
hoặc message
. Ví dụ:
context.setVariable('error.header.FOO-1', 'error_header');
HOẶC
context.setVariable('message.header.FOO-2', 'message_header');
Tuy nhiên, biểu thức sau đây sẽ không hoạt động:
context.setVariable('response.header.FOO-3', 'response_header');
Trong trường hợp này, biến response
nằm ngoài phạm vi trong
luồng lỗi. (Lưu ý rằng, trong một dấu vết, điều này được biểu thị trực quan bằng các biến hiển thị với ký hiệu bằng
có dấu gạch chéo.)
Để đặt tiêu đề phản hồi cho cả luồng thành công và lỗi trong một chính sách, bạn
có thể sử dụng message
bên trong chính sách JavaScript. Ví dụ:
<faultrules> <faultrule name="invalid_key_rule"> <step> <name>SetResponseHeaders</name> </step> <condition>(fault.name = "InvalidApiKey")</condition> </faultrule> </faultrules>
Trong chính sách này, mã như sau sẽ đặt tiêu đề lỗi/phản hồi trong bất kỳ ngữ cảnh luồng nào:
context.setVariable('message.header.FOO-1', 'the header value');
Bạn có thể sử dụng lại chính sách này trên quy trình ProxyResponse thông thường và việc này sẽ thành công vì
message
có sẵn trong mọi ngữ cảnh.