คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
Edge ให้คุณเรียกใช้พร็อกซี API 1 รายการจากพร็อกซี API อื่นได้ ฟีเจอร์นี้มีประโยชน์มากโดยเฉพาะหากคุณมีพร็อกซี API ที่มีโค้ดที่นำมาใช้ใหม่ได้ ซึ่งพร็อกซี API อื่นๆ จะนำไปใช้งานได้
ลายป้องกัน
การเรียกใช้พร็อกซี API รายการหนึ่งจากอีกอันหนึ่งโดยใช้ HTTPTargetConnection ในปลายทางเป้าหมายหรือโค้ด JavaScript ที่กำหนดเองจะทำให้เกิดการ Hop ของเครือข่ายเพิ่มเติม
เรียกใช้พร็อกซี 2 จากพร็อกซี 1 โดยใช้ HTTPTargetConnection
ตัวอย่างโค้ดต่อไปนี้จะเรียกพร็อกซี 2 จากพร็อกซี 1 โดยใช้ HTTPTargetConnection:
<!-- /antipatterns/examples/2-1.xml --> <HTTPTargetConnection> <URL>http://myorg-test.apigee.net/proxy2</URL> </HTTPTargetConnection>
เรียกใช้พร็อกซี 2 จากพร็อกซี 1 จากโค้ด JavaScript
ตัวอย่างโค้ดถัดไปจะเรียกพร็อกซี 2 จากพร็อกซี 1 โดยใช้ JavaScript ดังนี้
<!-- /antipatterns/examples/2-2.xml --> var response = httpClient.send('http://myorg-test.apigee.net/proxy2); response.waitForComplete();
โฟลว์ของรหัส
ในการทำความเข้าใจสาเหตุที่การดำเนินการเช่นนี้มีข้อเสียเปรียบ เราต้องเข้าใจเส้นทางการดำเนินการของคำขอดังที่แสดงในแผนภาพด้านล่าง
ตามที่แสดงในแผนภาพ คำขอจะข้ามผ่านคอมโพเนนต์ที่มีการเผยแพร่หลายรายการ รวมถึงเราเตอร์และเครื่องมือประมวลผลข้อความ
ในตัวอย่างโค้ดข้างต้น การเรียกใช้พร็อกซี 2 จากพร็อกซี 1 หมายความว่าคำขอจะต้องผ่านเส้นทางแบบดั้งเดิม (เช่น เราเตอร์ > MP) ที่รันไทม์ กรณีนี้จะคล้ายกับการเรียก API จากไคลเอ็นต์ ซึ่งทำให้การรับส่งเครือข่ายหลายครั้งทำให้เวลาในการตอบสนองเพิ่มขึ้น การข้ามเหล่านี้เป็นสิ่งที่ไม่จำเป็นเนื่องจากคำขอพร็อกซี 1 "ถึง" MP แล้ว
มีอิทธิพล
การเรียกใช้พร็อกซี API รายการหนึ่งจากพร็อกซี API อื่นจะทำให้เกิดการรับส่งเครือข่ายที่ไม่จำเป็น กล่าวคือคำขอจะต้องส่งต่อจากผู้ประมวลผลข้อความหนึ่งไปยังอีกเครื่องมือหนึ่ง
แนวทางปฏิบัติแนะนำ
- ใช้ฟีเจอร์ห่วงโซ่พร็อกซีสำหรับเรียกใช้พร็อกซี API หนึ่งจากอีกพร็อกซีหนึ่ง การเชื่อมโยงพร็อกซีจะมีประสิทธิภาพมากกว่าเนื่องจากใช้การเชื่อมต่อภายในเพื่ออ้างอิงปลายทางเป้าหมาย (พร็อกซี API อื่น)
ตัวอย่างโค้ดแสดงเชนพร็อกซีโดยใช้ LocalTargetConnection ในคำจำกัดความของปลายทาง ดังนี้
<!-- /antipatterns/examples/2-3.xml --> <LocalTargetConnection> <APIProxy>proxy2</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection>
พร็อกซี API ที่เรียกใช้มีการดำเนินการภายในตัวประมวลผลข้อความเดียวกัน ด้วยเหตุนี้ จะทำให้มีการหลีกเลี่ยงการพักเครือข่ายดังที่แสดงในรูปต่อไปนี้