คุณกําลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X info
เมื่อส่งคําขอไปยังพร็อกซี API คุณสามารถส่งข้อมูลต่อไปนี้บางส่วนหรือทั้งหมดได้ ขึ้นอยู่กับวิธีกําหนดค่าพร็อกซี API
- ส่วนหัวของคำขอ
- พารามิเตอร์การค้นหา
- ข้อมูลฟอร์ม
- เพย์โหลด XML หรือ JSON
- URI ของแหล่งข้อมูล
โดยค่าเริ่มต้น ระบบจะส่งข้อมูลทั้งหมดในคําขอจาก ProxyEndpoint ไปยัง TargetEndpoint โดยไม่มีการแก้ไข ดังนั้น เมื่อ TargetEndpoint ส่งคําขอไปยังเซิร์ฟเวอร์แบ็กเอนด์ ระบบจะส่งข้อมูลทั้งหมดในคําขอเดิมไปยังบริการแบ็กเอนด์
เช่นเดียวกับการตอบกลับที่ Edge ได้รับจากบริการแบ็กเอนด์ โดยค่าเริ่มต้น ระบบจะส่งข้อมูลทั้งหมดที่ได้รับในการตอบกลับไปยังแอปที่ส่งคำขอโดยไม่มีการแก้ไข
ระบบส่งข้อมูลคําขอไปยังเซิร์ฟเวอร์แบ็กเอนด์อย่างไร
รูปภาพต่อไปนี้แสดงคําจํากัดความของพร็อกซี API
สำหรับพร็อกซี API นี้
- โฮสต์เสมือนของพร็อกซี API: "default"
- โดเมนที่กําหนดโดยโฮสต์เสมือน: "http://myOrg-prod.apigee.net"
- เส้นทางฐานของพร็อกซี: "/v1/weather"
- TargetEndpoint ที่ระบุโดยกฎเส้นทาง: "default"
- 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
: "GET"proxy.basepath
: "/v1/weather"proxy.pathsuffix
: "forecastrss"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 ใช้เพื่อตรวจสอบคำขอออก บริการแบ็กเอนด์ไม่ได้กำหนดให้ต้องระบุข้อมูลดังกล่าว
- หากต้องการเพิ่มข้อมูลที่ส่งไปยังบริการแบ็กเอนด์ เช่น เพื่อติดตามผู้ใช้หรือเพื่อรวบรวมข้อมูลวิเคราะห์
- เพื่อประมวลผลคําขอตามเงื่อนไขโดยอิงตามข้อมูลคําขอ เช่น พร็อกซี API มี TargetEndpoints ได้หลายจุด ระบบจะกำหนด TargetEndpoint ที่คำขอใช้โดยข้อมูลคำขอ จากนั้นคุณจะตัดข้อมูลนั้นออกจากคำขอก่อนที่จะส่งไปยังบริการแบ็กเอนด์
ข้อมูลในคำตอบก็เช่นเดียวกัน ในขั้นตอนการประมวลผลการตอบกลับ พารามิเตอร์ API อาจต้องการแก้ไขข้อมูลก่อนที่จะส่งกลับไปยังแอปที่ส่งคำขอ
ข้อความคำขอเข้าถึง
คุณใช้นโยบายเพื่อเข้าถึงและเปลี่ยนแปลงส่วนต่างๆ ของข้อความคําขอได้ ซึ่งได้แก่
- ส่วนหัว
- พารามิเตอร์การค้นหา
- พารามิเตอร์ของแบบฟอร์ม
- ที่อยู่ IP ต้นทาง
- เนื้อหาข้อความ HTTP
ในขั้นตอนปกติ เมื่อประมวลผลคําขอแล้ว พร็อกซีจะส่งคําขอที่เปลี่ยนรูปแบบไปยังเป้าหมาย
นโยบายจะตรวจสอบตัวแปรคำขอ จากนั้นเปลี่ยนรูปแบบหรือปฏิเสธคำขอตามเนื้อหาของตัวแปรเหล่านั้น นโยบายจะเปลี่ยนรูปแบบคําขอโดยการตั้งค่าตัวแปรที่เหมาะสม เช่น ตัวแปรที่สอดคล้องกับส่วนหัวของคําขอ
เข้าถึงข้อความตอบกลับ
การใช้ตัวแปรที่มีผลกับข้อความตอบกลับ นโยบายอาจเข้าถึงองค์ประกอบข้อความได้ ซึ่งรวมถึงส่วนหัว พารามิเตอร์การค้นหา และพารามิเตอร์แบบฟอร์ม ที่อยู่ IP ต้นทาง เนื้อหาข้อความ HTTP และอื่นๆ
พร็อกซีจะได้รับข้อความตอบกลับ จากนั้นนำไปใช้กับชุดนโยบายโดยอิงตามเงื่อนไขที่ประเมินในการตอบกลับ ซึ่งอาจแก้ไขหรือเปลี่ยนแปลงการตอบกลับได้
นโยบายจะตรวจสอบตัวแปรการตอบกลับ จากนั้นเปลี่ยนรูปแบบหรือปฏิเสธคําขอตามเนื้อหาของตัวแปรเหล่านั้น นโยบายจะเปลี่ยนรูปแบบคำตอบโดยการตั้งค่าตัวแปรที่เหมาะสม เช่น ตัวแปรที่สอดคล้องกับส่วนหัวของคำตอบ
นโยบายทั่วไปในการเข้าถึงตัวแปรโฟลว์
Edge กำหนดนโยบายหลายรายการที่คุณสามารถใช้เพื่อประมวลผลข้อมูลคำขอและการตอบกลับ นโยบายดังกล่าวได้แก่
- นโยบาย AssignMessage: สร้างหรือแก้ไขข้อความคำขอหรือคำตอบ HTTP ในระหว่างขั้นตอนการส่งผ่านพร็อกซี API รวมถึงสร้างและป้อนข้อมูลตัวแปรการไหลใหม่
- นโยบาย ExtractVariables: ดึงข้อมูลเนื้อหาจากข้อความ ซึ่งรวมถึงส่วนหัว เส้นทาง URI, เพย์โหลด และพารามิเตอร์การค้นหา เพื่อใช้ในคำสั่งเงื่อนไข จากนั้นนโยบายจะใช้รูปแบบข้อความกับเนื้อหาข้อความ และเมื่อพบรายการที่ตรงกัน ก็จะตั้งค่าตัวแปรที่กําหนด
- นโยบาย JSONtoXML และนโยบาย XMLtoJSON: แปลงข้อความจาก JavaScript Object Notation (JSON) ให้เป็นรูปแบบภาษามาร์กอัปแบบขยาย (XML) หรือในทางกลับกัน
- นโยบาย JavaCallout, นโยบาย JavaScript, นโยบาย PythonScript, นโยบาย RegularExpressionProtection: นโยบายเหล่านี้ช่วยให้คุณเขียนสคริปต์เพื่อเข้าถึงตัวแปรของโฟลว์ที่มีข้อมูลคำขอและการตอบกลับได้