คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
เมื่อส่งคำขอไปยังพร็อกซี API คุณจะส่งข้อมูลต่อไปนี้บางส่วนหรือทั้งหมดก็ได้ ทั้งนี้ขึ้นอยู่กับวิธีการกำหนดค่าพร็อกซี API
- ส่วนหัวของคำขอ
- พารามิเตอร์การค้นหา
- ข้อมูลฟอร์ม
- เพย์โหลด XML หรือ JSON
- URI ของทรัพยากร
โดยค่าเริ่มต้น ระบบจะส่งข้อมูลทั้งหมดในคำขอไม่เปลี่ยนแปลงจาก ProxyEndpoint ไปยัง TargetEndpoint ดังนั้น เมื่อ TargetEndpoint ส่งคำขอไปยังเซิร์ฟเวอร์แบ็กเอนด์ ระบบจะส่งข้อมูลทั้งหมดในคำขอเดิมไปยังบริการแบ็กเอนด์
การตอบกลับที่ Edge ได้รับจากบริการแบ็กเอนด์ก็เช่นเดียวกัน โดยค่าเริ่มต้น ระบบจะส่งข้อมูลทั้งหมดที่ได้รับในการตอบกลับไปยังแอปที่สร้างคำขอโดยไม่มีการเปลี่ยนแปลง
ระบบจะส่งข้อมูลคำขอไปยังเซิร์ฟเวอร์แบ็กเอนด์อย่างไร
รูปภาพต่อไปนี้แสดงคำจำกัดความของพร็อกซี API
สำหรับพร็อกซี 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
โปรดสังเกตว่าคำขอนี้มีทรัพยากร "forecastrs" และพารามิเตอร์การค้นหา 1 รายการ นั่นคือ w
Edge จะแยกวิเคราะห์คำขอดังที่แสดงด้านล่าง และกำหนดส่วนต่างๆ ของคำขอให้กับตัวแปรโฟลว์ ดังนี้
{request.verb} {proxy.basepath}/{proxy.pathsuffix}?{request.querystring}
ตัวแปรโฟลว์ได้รับการตั้งค่าด้วยค่าต่อไปนี้
request.verb
: "รับ"proxy.basepath
: "/v1/weather"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
ในทั้งสองตัวอย่าง ระบบจะส่งส่วนหัวและข้อมูลแบบฟอร์มไปยังบริการแบ็กเอนด์โดยไม่มีการเปลี่ยนแปลง ส่วนหัวจะแสดงด้วยตัวแปรโฟลว์ เช่น request.headers.count
และ request.headers.names
ข้อมูลในแบบฟอร์มจะแสดงด้วยตัวแปรโฟลว์ เช่น request.formparam.count
และ request.formparam.names
ระบบแสดงผลข้อมูลการตอบกลับอย่างไร
โดยค่าเริ่มต้น ข้อมูลทั้งหมดที่ Edge ได้รับจากบริการแบ็กเอนด์ในการตอบกลับจะส่งต่อไปที่แอปที่สร้างคําขอ ตามที่อธิบายไว้ข้างต้นสำหรับคำขอ ข้อมูลที่แสดงในการตอบกลับจะเข้าถึงได้ผ่านตัวแปรโฟลว์บน Edge ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลอ้างอิงตัวแปรโฟลว์
เข้าถึงข้อมูลคำขอและการตอบกลับในพร็อกซี API
มีหลายครั้งที่คุณต้องการแก้ไขข้อมูลคำขอก่อนที่จะส่งไปยังเซิร์ฟเวอร์แบ็กเอนด์ เช่น
- ในการนำข้อมูลความปลอดภัยที่ Edge ใช้เพื่อตรวจสอบคำขอออก บริการแบ็กเอนด์ไม่จําเป็นต้องมีข้อมูลดังกล่าว
- เพิ่มข้อมูลที่ส่งไปยังบริการแบ็กเอนด์ เช่น เพื่อติดตามผู้ใช้หรือรวบรวมข้อมูลวิเคราะห์
- เพื่อประมวลผลคำขออย่างมีเงื่อนไขโดยอิงตามข้อมูลคำขอ เช่น พร็อกซี API อาจมี TargetEndpoints หลายจุดได้ TargetEndpoint ที่คำขอใช้จะกำหนดโดยข้อมูลคำขอ จากนั้นให้คุณตัดข้อมูลดังกล่าวออกจากคำขอก่อนที่จะส่งไปยังบริการแบ็กเอนด์
ข้อมูลในคำตอบก็เช่นเดียวกัน พร็อกซี API อาจต้องแก้ไขข้อมูลก่อนส่งไปยังแอปที่ส่งคำขอ ซึ่งเป็นส่วนหนึ่งของการประมวลผลการตอบกลับ
ข้อความคำขอเข้าถึง
คุณจะใช้นโยบายเพื่อเข้าถึงและเปลี่ยนส่วนต่างๆ ของข้อความคำขอได้ ส่วนต่างๆ เหล่านี้รวมถึง
- ส่วนหัว
- พารามิเตอร์การค้นหา
- พารามิเตอร์แบบฟอร์ม
- ที่อยู่ IP ต้นทาง
- เนื้อหาข้อความ HTTP
ในขั้นตอนปกติ เมื่อคำขอได้รับการประมวลผลแล้ว พร็อกซีจะส่งคำขอที่เปลี่ยนรูปแบบแล้วไปยังเป้าหมาย
นโยบายสามารถตรวจสอบตัวแปรคำขอ จากนั้นเปลี่ยนรูปแบบหรือปฏิเสธคำขอตามเนื้อหาของตัวแปรเหล่านั้นได้ นโยบายจะเปลี่ยนคำขอด้วยการตั้งค่าตัวแปรที่เหมาะสม เช่น ตัวแปรที่สอดคล้องกับส่วนหัวของคำขอ
เข้าถึงข้อความตอบกลับ
เมื่อใช้ตัวแปรที่ใช้กับข้อความตอบกลับ นโยบายอาจเข้าถึงคอมโพเนนต์ข้อความต่างๆ เช่น ส่วนหัว พารามิเตอร์การค้นหา และพารามิเตอร์ของแบบฟอร์ม ที่อยู่ IP ต้นทาง เนื้อหาข้อความ HTTP และอื่นๆ
พร็อกซีจะได้รับข้อความตอบกลับ จากนั้นระบบจะนำไปใช้กับชุดนโยบายโดยอิงตามเงื่อนไขที่ประเมินในคำตอบ ซึ่งจะแก้ไขหรือเปลี่ยนรูปแบบการตอบกลับได้
นโยบายสามารถตรวจสอบตัวแปรการตอบกลับ จากนั้นเปลี่ยนรูปแบบหรือปฏิเสธคำขอตามเนื้อหาของตัวแปรเหล่านั้นได้ นโยบายจะเปลี่ยนการตอบกลับโดยการตั้งค่าตัวแปรที่เหมาะสม เช่น ตัวแปรที่สอดคล้องกับส่วนหัวของการตอบกลับ
นโยบายทั่วไปสำหรับเข้าถึงตัวแปรโฟลว์
Edge ได้กำหนดนโยบายหลายประการที่คุณใช้ประมวลผลข้อมูลคำขอและการตอบกลับได้ นโยบายเหล่านี้ได้แก่
- นโยบาย AssignMessage: สร้างหรือแก้ไขข้อความคำขอ HTTP หรือข้อความตอบกลับระหว่างโฟลว์พร็อกซี API รวมถึงสร้างและป้อนข้อมูลตัวแปรโฟลว์ใหม่
- นโยบาย ExtractVariable: ดึงเนื้อหาจากข้อความ รวมถึงส่วนหัว, เส้นทาง URI, เพย์โหลด และพารามิเตอร์การค้นหา เพื่อใช้ในคำสั่งเงื่อนไข จากนั้นนโยบายจะใช้รูปแบบข้อความกับเนื้อหาข้อความและเมื่อพบการจับคู่ที่ตรงกันจะใช้ตัวแปรที่กำหนด
- นโยบาย JSONtoXML และนโยบาย XMLtoJSON: แปลงข้อความจาก JavaScript Object Notation (JSON) เป็นรูปแบบภาษามาร์กอัป (XML) ที่ขยายได้ หรือในทางกลับกัน
- นโยบาย JavaScript, นโยบาย JavaScript, นโยบาย PythonScript, นโยบาย regularExpressionProtection: นโยบายเหล่านี้ให้คุณเขียนสคริปต์เพื่อเข้าถึงตัวแปรโฟลว์ที่มีข้อมูลคำขอและการตอบกลับได้