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 đó phụ thuộc vào điểm trong
Luồng proxy API mà biến đó được truy cập. Thuộc tính 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ể thiết lập tiêu đề phản hồi trên đối tượng response
bằng chính sách JavaScript nếu đang ở trong luồng 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ể dùng để đặt tiêu đề phản hồi từ trong chính sách JavaScript, hoặc có thể truy cập trong các chính sách khác có thể sử dụng biến luồng.
Bạn có thể sử dụng AssignMessage chính sách để gán giá trị (chẳng hạn như tiêu đề) cho đối tượng phản hồi. Chỉ định Thông báo sẽ tự động xử lý việc chuyển đổi trong ngữ cảnh từ luồng yêu cầu/phản hồi sang luồng 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 bằng chính sáchMessageLogging. Nếu sử dụng đối tượng message
, bạn có thể ghi nhật ký thông tin phản hồi một cách liền mạch sau cả điều kiện thành công và lỗi trong proxy.
Ví dụ
Trong quy trình 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 sẽ không có tác dụ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 của quy trình lỗi. (Lưu ý rằng trong một dấu vết, điều này được biểu thị một cách trực quan bằng các biến có dấu bằng cùng dấu gạch chéo trên đó.)
Để đặ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, bạn có thể 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, đoạn 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 ngữ cảnh.