Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào
tài liệu 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 mà biến này được truy cập. Đối tượng này có sẵn trong mọi ngữ cảnh, trong khi một số đối tượng, chẳng hạn 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 chuyển sang luồng lỗi: 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 có sẵn. Bạn sẽ không thể đặt tiêu đề phản hồi trên đối tượng response bằng chính sách JavaScript nếu đang trong quy trình 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 tiêu đề phản hồi trong chính sách JavaScript hoặc được truy cập trong các chính sách khác có thể dùng các biến luồng.
Bạn có thể sử dụng chính sách AssignMessage để chỉ định các giá trị (chẳng hạn như tiêu đề) cho đối tượng response. Assign Message 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 sang quy trình lỗi.
Một trường hợp sử dụng khác cho biến message là ghi lại dữ liệu phản hồi trong PostClientFlow bằng 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 một cách 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 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. (Xin lưu ý rằng trong dấu vết, điều này được biểu thị bằng hình ảnh thông qua các biến xuất hiện cùng dấ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à luồng lỗi trong một chính sách duy nhất, 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, mã như sau sẽ đặt tiêu đề lỗi/phản hồi trong mọi ngữ cảnh luồng:
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à chính sách này sẽ thành công vì message có sẵn trong mọi bối cảnh.