ตัวแปรโฟลว์ข้อความ

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

สิทธิ์เข้าถึงตัวแปรโฟลว์ message และพร็อพเพอร์ตี้จะขึ้นอยู่กับจุดภายใน โฟลว์พร็อกซี API ที่มีการเข้าถึง ฟีเจอร์นี้พร้อมใช้งานในทุกบริบท ในขณะที่ออบเจ็กต์บางรายการ เช่น request หรือ response ไม่ใช่

กรณีการใช้งาน

กรณีการใช้งานหลักของตัวแปรโฟลว์ message คือเมื่อพร็อกซีป้อน โฟลว์ข้อผิดพลาด: ตัวแปรโฟลว์ request และ response อยู่นอกขอบเขต

เช่น ในโฟลว์ข้อผิดพลาด ออบเจ็กต์ response ไม่พร้อมใช้งาน คุณจะไม่ สามารถตั้งค่าส่วนหัวการตอบกลับในออบเจ็กต์ response ด้วยนโยบาย JavaScript หากอยู่ในขั้นตอนข้อผิดพลาด แต่จะใช้วิธีใดวิธีหนึ่งต่อไปนี้แทนได้

ออบเจ็กต์ทั้ง 2 รายการนี้พร้อมใช้งานในโฟลว์ข้อผิดพลาดและใช้เพื่อตั้งค่าการตอบสนองได้ ส่วนหัวจากภายในนโยบาย JavaScript หรือเข้าถึงได้ในนโยบายอื่นๆ ที่ใช้โฟลว์ได้ ตัวแปร

คุณใช้นโยบาย AssignMessage เพื่อกำหนดค่า เช่น ส่วนหัว ไปยังออบเจ็กต์ response กำหนดข้อความจะจัดการการเปลี่ยนโดยอัตโนมัติ บริบทตั้งแต่ขั้นตอนการส่งคำขอ/การตอบกลับไปจนถึงขั้นตอนข้อผิดพลาด

อีกกรณีหนึ่งที่ใช้สําหรับตัวแปร message คือบันทึกข้อมูลการตอบกลับในส่วน PostClientFlow โดยใช้นโยบาย MessageLaking หากคุณใช้ออบเจ็กต์ 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 พร้อมให้บริการจากทุกบริบท