คุณกำลังดูเอกสารประกอบ 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
โปรดสังเกตว่าคำขอนี้มี "การคาดการณ์" ทรัพยากร และพารามิเตอร์คำค้นหา 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 เหล่านี้ช่วยให้คุณเขียนสคริปต์เพื่อเข้าถึงตัวแปรโฟลว์ได้ ที่มีข้อมูลคำขอและการตอบกลับ