คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
สิทธิ์เข้าถึงตัวแปรโฟลว์ message
และพร็อพเพอร์ตี้จะขึ้นอยู่กับจุดภายในโฟลว์พร็อกซี API ที่มีการเข้าถึง โดยจะพร้อมใช้งานในทุกบริบท แต่ออบเจ็กต์บางอย่าง เช่น request
หรือ response
ไม่พร้อมใช้งาน
Use Case
กรณีการใช้งานหลักของตัวแปรโฟลว์ message
คือเมื่อพร็อกซีป้อนโฟลว์ข้อผิดพลาด: ตัวแปรโฟลว์ request
และ response
ไม่อยู่ในขอบเขต
ตัวอย่างเช่น ในขั้นตอนข้อผิดพลาด ออบเจ็กต์ response
จะใช้งานไม่ได้ คุณจะตั้งค่าส่วนหัวการตอบกลับในออบเจ็กต์ response
ด้วยนโยบาย JavaScript ไม่ได้หากอยู่ในขั้นตอนข้อผิดพลาด โดยคุณสามารถใช้ URL ต่อไปนี้แทนได้
ออบเจ็กต์ทั้ง 2 อย่างนี้อยู่ในขั้นตอนข้อผิดพลาด และใช้เพื่อตั้งค่าส่วนหัวการตอบกลับจากภายในนโยบาย JavaScript หรือเข้าถึงในนโยบายอื่นๆ ที่ใช้ตัวแปรโฟลว์ได้
คุณใช้นโยบาย AssignMessage เพื่อกำหนดค่าต่างๆ เช่น ส่วนหัว ให้กับออบเจ็กต์ response การกำหนดข้อความจะจัดการสวิตช์โดยอัตโนมัติในบริบทตั้งแต่ขั้นตอนการส่งคำขอ/การตอบกลับไปจนถึงขั้นตอนแสดงข้อผิดพลาด
กรณีการใช้งานอีกกรณีหนึ่งสำหรับตัวแปร 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
ไม่อยู่ในขอบเขตในขั้นตอนข้อผิดพลาด (โปรดทราบว่าในการติดตาม ตัวแปรนี้จะแสดงให้เห็นเป็นภาพด้วยเครื่องหมายเท่ากับพร้อมเครื่องหมายทับ)
หากต้องการตั้งค่าส่วนหัวการตอบกลับสำหรับทั้งขั้นตอนความสำเร็จและข้อผิดพลาดในนโยบายเดียว ให้ใช้ 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
พร้อมใช้งานจากทุกบริบท