คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
การเข้าถึงตัวแปรโฟลว์ message และพร็อพเพอร์ตี้ของตัวแปรดังกล่าวจะขึ้นอยู่กับจุดภายใน
โฟลว์ของพร็อกซี API ที่มีการเข้าถึง โดยตัวแปรนี้จะใช้ได้ในทุกบริบท ขณะที่ออบเจ็กต์บางรายการ
เช่น request หรือ response จะใช้ไม่ได้
กรณีการใช้งาน
กรณีการใช้งานหลักสำหรับตัวแปรโฟลว์ message คือเมื่อพร็อกซีเข้าสู่
โฟลว์ข้อผิดพลาด ซึ่งตัวแปรโฟลว์ request และ response จะอยู่นอกขอบเขต
ตัวอย่างเช่น ในโฟลว์ข้อผิดพลาด ออบเจ็กต์ response จะไม่พร้อมใช้งาน คุณจะตั้งค่าส่วนหัวการตอบกลับในออบเจ็กต์ response ด้วย นโยบาย JavaScript ไม่ได้หากอยู่ในโฟลว์ข้อผิดพลาด แต่คุณสามารถใช้อย่างใดอย่างหนึ่งต่อไปนี้แทน
ออบเจ็กต์ทั้ง 2 รายการนี้พร้อมใช้งานในโฟลว์ข้อผิดพลาด และสามารถใช้เพื่อตั้งค่าส่วนหัวการตอบกลับ จากภายในนโยบาย JavaScript หรือเข้าถึงในนโยบายอื่นๆ ที่ใช้ตัวแปรโฟลว์ ได้
คุณสามารถใช้ นโยบาย AssignMessage เพื่อกำหนดค่าต่างๆ เช่น ส่วนหัว ให้กับออบเจ็กต์ response Assign Message จะจัดการการเปลี่ยนบริบทจากโฟลว์คำขอ/การตอบกลับไปยังโฟลว์ข้อผิดพลาดโดยอัตโนมัติ
อีกกรณีการใช้งานหนึ่งสำหรับตัวแปร message คือการบันทึกข้อมูลการตอบกลับใน
PostClientFlow ด้วยนโยบาย MessageLogging หากใช้ออบเจ็กต์ message
คุณจะบันทึกข้อมูลการตอบกลับได้อย่างราบรื่นทั้งในกรณีที่สำเร็จและเกิดข้อผิดพลาดใน
พร็อกซี
ตัวอย่าง
ในโฟลว์ข้อผิดพลาด คุณสามารถตั้งค่าส่วนหัวการตอบกลับจากนโยบาย JavaScript โดยใช้
error หรือ message ก็ได้ เช่น
context.setVariable('error.header.FOO-1', 'error_header');หรือ
context.setVariable('message.header.FOO-2', 'message_header');อย่างไรก็ตาม นิพจน์ต่อไปนี้จะ ไม่ ทำงาน
context.setVariable('response.header.FOO-3', 'response_header');ในกรณีนี้ ตัวแปร response จะอยู่นอกขอบเขตใน
โฟลว์ข้อผิดพลาด (โปรดทราบว่าใน Trace ระบบจะระบุตัวแปรที่อยู่นอกขอบเขตด้วยภาพโดยแสดงตัวแปรที่มีเครื่องหมายเท่ากับพร้อมขีดทับ
)
หากต้องการตั้งค่าส่วนหัวการตอบกลับสำหรับทั้งโฟลว์ที่สำเร็จและโฟลว์ข้อผิดพลาดในนโยบายเดียว คุณ
สามารถใช้ message ภายใน นโยบาย JavaScript ได้ เช่น
<faultrules>
<faultrule name="invalid_key_rule">
<step>
<name>SetResponseHeaders</name>
</step>
<condition>(fault.name = "InvalidApiKey")</condition>
</faultrule>
</faultrules>ในนโยบาย โค้ดต่อไปนี้จะตั้งค่าส่วนหัวข้อผิดพลาด/ส่วนหัวการตอบกลับในบริบทโฟลว์ใดก็ได้
context.setVariable('message.header.FOO-1', 'the header value');คุณสามารถนำนโยบายเดียวกันนี้ไปใช้ซ้ำในโฟลว์ ProxyResponse ปกติได้ และนโยบายจะทำงานสำเร็จเนื่องจาก
message พร้อมใช้งานจากทุกบริบท