ตัวแปรคำขอและการตอบกลับ

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

เมื่อส่งคำขอไปยังพร็อกซี API คุณจะส่งข้อมูลต่อไปนี้บางส่วนหรือทั้งหมดก็ได้ ทั้งนี้ขึ้นอยู่กับวิธีการกำหนดค่าพร็อกซี API:

  • ส่วนหัวของคำขอ
  • พารามิเตอร์การค้นหา
  • ข้อมูลฟอร์ม
  • เพย์โหลด XML หรือ JSON
  • URI ของทรัพยากร

โดยค่าเริ่มต้น ข้อมูลทั้งหมดในคำขอจะถูกส่งโดยไม่มีการเปลี่ยนแปลงจาก ProxyEndpoint ไปยัง TargetEndpoint ดังนั้นเมื่อ TargetEndpoint ส่งคำขอไปยังเซิร์ฟเวอร์แบ็กเอนด์ ข้อมูลในคำขอเดิมจะส่งไปยังบริการแบ็กเอนด์

เช่นเดียวกันกับการตอบกลับที่ Edge ได้รับจากบริการแบ็กเอนด์ โดยค่าเริ่มต้นคือ ข้อมูลที่ได้รับในการตอบกลับจะถูกส่งผ่านไม่เปลี่ยนแปลงไปยังแอปที่สร้าง อีกครั้ง

ระบบส่งข้อมูลคำขอไปยังแบ็กเอนด์อย่างไร เซิร์ฟเวอร์ของคุณ

รูปภาพต่อไปนี้แสดงคำจำกัดความของพร็อกซี API

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

สำหรับพร็อกซี API นี้

  • โฮสต์เสมือนพร็อกซี API: "ค่าเริ่มต้น"
  • โดเมนที่กำหนดโดยโฮสต์เสมือน: "http://myOrg-prod.apigee.net"
  • เส้นทางฐานของพร็อกซี: "/v1/weather"
  • TargetEndpoint ที่ระบุโดยกฎเส้นทาง: "ค่าเริ่มต้น"
  • URL เป้าหมาย: "http://weather.yahooapis.com"

แอปไคลเอ็นต์ส่งคำขอ GET ไปยังพร็อกซี API โดยใช้ข้อมูลต่อไปนี้ คำสั่ง curl:

curl -X GET http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

โปรดสังเกตว่าคำขอนี้มี "การคาดการณ์" ทรัพยากร และพารามิเตอร์คำค้นหา 1 รายการ w Edge จะแยกวิเคราะห์คำขอเป็น ด้านล่างนี้และกำหนดส่วนต่างๆ ของคำขอไปยังตัวแปร

{request.verb} {proxy.basepath}/{proxy.pathsuffix}?{request.querystring}

ตัวแปรโฟลว์ได้รับการตั้งค่าด้วยค่าต่อไปนี้

  • request.verb: "ดาวน์โหลด"
  • proxy.basepath: "/v1/สภาพอากาศ"
  • proxy.pathsuffix: "ผู้คาดการณ์"
  • request.querystring: "w=12797282"

จากนั้น TargetEndpoint จะส่งคำขอไปยังบริการแบ็กเอนด์โดยใช้ข้อมูลจาก คำขอ:

{request.verb} {target.basepath}/{proxy.pathsuffix}?{request.querystring}

สังเกตว่ามีการรวมทรัพยากรและพารามิเตอร์การค้นหาที่ระบุในคำขอโดยอัตโนมัติอย่างไร ในคำขอไปยังเซิร์ฟเวอร์แบ็กเอนด์ จากคำจำกัดความของ TargetEndpoint แล้วคำขอจะ มีรูปแบบดังนี้

curl -X GET http://weather.yahooapis.com/forecastrss?w=12797282

ส่วนหัวหรือพารามิเตอร์ของฟอร์มที่คุณรวมไว้ในคำขอที่ส่งไปยัง API เช่นเดียวกับพารามิเตอร์การค้นหา ระบบจะส่งพร็อกซีไปยังเซิร์ฟเวอร์แบ็กเอนด์ ตัวอย่างเช่น คุณส่งคำขอด้านล่างซึ่งรวม ส่วนหัว:

curl -X GET -H 'Content-type:application/xml' http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

หรือส่งคำขอในแบบฟอร์มด้านล่างเพื่อรวมข้อมูลส่วนหัวและข้อมูลในแบบฟอร์ม

curl -X POST -H "Content-type:application/json" -d \
  '{"email" : "janetutorialxml@example.com",
    "firstName" : "Jane",
    "lastName" : "Tutorial",
    "userName" : "jtutorialxml"
  }' \
  http://myOrg-prod.apigee.net/v1/register/user

ในทั้ง 2 ตัวอย่าง ส่วนหัวและข้อมูลแบบฟอร์มจะส่งไปยังบริการแบ็กเอนด์โดยไม่เปลี่ยนแปลง ส่วนหัวจะแสดงโดยตัวแปรของโฟลว์ เช่น request.headers.count และ request.headers.names ข้อมูลแบบฟอร์มจะแสดงด้วยตัวแปรการไหล เช่น request.formparam.count และ request.formparam.names

ระบบแสดงข้อมูลการตอบกลับอย่างไร

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

เข้าถึงข้อมูลคำขอและการตอบกลับใน พร็อกซี API

มีหลายครั้งที่คุณต้องการแก้ไขข้อมูลคำขอก่อนที่จะส่งไปยังแบ็กเอนด์ เซิร์ฟเวอร์ เช่น

  • เพื่อนำข้อมูลความปลอดภัยที่ Edge ใช้ในการตรวจสอบคำขอออก ข้อมูลดังกล่าวไม่ใช่ ที่จำเป็นสำหรับบริการแบ็กเอนด์
  • ในการเพิ่มข้อมูลที่ส่งไปยังบริการแบ็กเอนด์ เช่น เพื่อติดตามผู้ใช้หรือเพื่อรวบรวม Analytics
  • เพื่อประมวลผลคำขอแบบมีเงื่อนไขตามข้อมูลคำขอ ตัวอย่างเช่น พร็อกซี API สามารถ มี TargetEndpoints หลายรายการ TargetEndpoint ที่คำขอใช้นั้นพิจารณาจากคำขอ จากนั้นคุณจะตัดข้อมูลนั้นออกจากคำขอก่อนที่จะส่งไปยังบริการแบ็กเอนด์

ข้อมูลในคำตอบก็เช่นเดียวกัน ในการประมวลผลการตอบกลับ พร็อกซี API อาจต้องแก้ไขข้อมูลก่อนที่จะกลับไปยังแอปที่ส่งคำขอ

ข้อความคำขอเข้าถึง

คุณใช้นโยบายเพื่อเข้าถึงและเปลี่ยนแปลงส่วนต่างๆ ของข้อความคําขอได้ ส่วนต่างๆ เหล่านี้ประกอบด้วย

  • ส่วนหัว
  • พารามิเตอร์การค้นหา
  • พารามิเตอร์แบบฟอร์ม
  • ที่อยู่ IP ต้นทาง
  • เนื้อหาข้อความ HTTP

ในขั้นตอนปกติ เมื่อดำเนินการตามคำขอแล้ว พร็อกซีจะส่งอีเมลที่เปลี่ยนรูปแบบ ไปยังเป้าหมาย

นโยบายสามารถตรวจสอบตัวแปรคำขอ จากนั้นเปลี่ยนรูปแบบหรือปฏิเสธคำขอตาม ของตัวแปรเหล่านั้น นโยบายจะเปลี่ยนรูปแบบคำขอโดยการตั้งค่าตัวแปรที่เหมาะสม เช่น ตัวแปรที่ตรงกับส่วนหัวของคำขอ

เข้าถึงข้อความตอบกลับ

เมื่อใช้ตัวแปรที่ใช้กับข้อความตอบกลับ นโยบายอาจเข้าถึงคอมโพเนนต์ข้อความ ซึ่งประกอบด้วยส่วนหัว, พารามิเตอร์การค้นหา และพารามิเตอร์แบบฟอร์ม, ที่อยู่ IP ต้นทาง, HTTP เนื้อหาข้อความ และอื่นๆ

พร็อกซีจะได้รับข้อความตอบกลับ จากนั้นนำไปใช้กับชุดนโยบายโดยอิงตาม เงื่อนไขที่ประเมินในคำตอบ ซึ่งแก้ไขหรือเปลี่ยนรูปแบบคำตอบได้

นโยบายสามารถตรวจสอบตัวแปรการตอบกลับ จากนั้นเปลี่ยนรูปแบบหรือปฏิเสธคำขอตาม ของตัวแปรเหล่านั้น นโยบายจะเปลี่ยนการตอบกลับโดยการตั้งค่าตัวแปรที่เหมาะสม เช่น ตัวแปรที่ตรงกับส่วนหัวการตอบกลับ

นโยบายทั่วไปในการเข้าถึงตัวแปรโฟลว์

Edge กำหนดนโยบายหลายรายการที่คุณสามารถใช้เพื่อประมวลผลข้อมูลคำขอและการตอบกลับ เหล่านี้ ได้แก่

  • นโยบาย AssignMessage: สร้างหรือแก้ไขข้อความคำขอ HTTP หรือข้อความตอบกลับระหว่างการใช้พร็อกซี API รวมถึงสร้างและเติมข้อมูลตัวแปรโฟลว์ใหม่ด้วย
  • นโยบาย ExtractVariable: ดึงเนื้อหาจากข้อความ ซึ่งรวมถึงส่วนหัว, เส้นทาง URI, เพย์โหลด และ พารามิเตอร์การค้นหา เพื่อใช้ในคำสั่งเงื่อนไข จากนั้นนโยบายจะใช้รูปแบบข้อความกับ เนื้อหาข้อความ และเมื่อพบการจับคู่ที่ตรงกัน จะเป็นการกำหนดตัวแปรที่กำหนด
  • นโยบาย JSONtoXML และนโยบาย XMLtoJSON: แปลงข้อความจาก JavaScript Object Notation (JSON) เป็นภาษามาร์กอัปที่ขยายได้ (XML) หรือในทางกลับกันก็ได้
  • นโยบาย Javaข้อความไฮไลต์, นโยบาย JavaScript, นโยบาย PythonScript นโยบาย regularExpressionProtection เหล่านี้ช่วยให้คุณเขียนสคริปต์เพื่อเข้าถึงตัวแปรโฟลว์ได้ ที่มีข้อมูลคำขอและการตอบกลับ