ทำความเข้าใจเส้นทาง

คุณกําลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
info

เส้นทางจะกําหนดเส้นทางของคําขอจาก ProxyEndpoint ไปยัง TargetEndpoint ซึ่งรวม URL ที่ใช้เข้าถึง ProxyEndpoint ของ API และ URL ของบริการแบ็กเอนด์ที่กําหนดโดย TargetEndpoint

ดูวิดีโอนี้เพื่อดูข้อมูลเบื้องต้นเกี่ยวกับเส้นทาง ซึ่งอธิบายความสัมพันธ์ระหว่าง ProxyEndpoint กับ TargetEndpoint

การกำหนด URL ของปลายทางพร็อกซี API

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

หลังจากสร้างพร็อกซี API บน Edge แล้ว URL เริ่มต้นที่แอปใช้เพื่อเข้าถึงพร็อกซีจะมีรูปแบบดังนี้

http://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}

https://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}

where:

  • {org-name} คือชื่อองค์กร โดยชื่อนี้จะสร้างขึ้นเมื่อคุณสร้างบัญชีใน Edge
  • {env-name} คือชื่อสภาพแวดล้อม Edge โดยค่าเริ่มต้น องค์กร Apigee ทั้งหมดที่สร้างในระบบคลาวด์จะจัดสรรให้มี 2 สภาพแวดล้อม ได้แก่ "test" และ "prod" เมื่อทําการติดตั้งใช้งานพร็อกซี API คุณสามารถเลือกติดตั้งใช้งานในสภาพแวดล้อมใดสภาพแวดล้อมหนึ่งหรือทั้ง 2 สภาพแวดล้อมก็ได้
  • {base-path} และ {resource-path} จะได้รับการกําหนดเมื่อคุณสร้างพร็อกซี API

เมื่อ Edge ได้รับคําขอ Edge จะแยกวิเคราะห์ URL เพื่อส่งคําขอไปยัง ProxyEndpoint ที่ถูกต้อง ตัวอย่างเช่น URL ต่อไปนี้ใช้เพื่อเข้าถึงพร็อกซี API ใน Edge

http://myOrg-prod.apigee.net/v1/weather/forecastrss

หากตรวจสอบคําจํากัดความของ ProxyEndpoint สําหรับพร็อกซี API ในรูปภาพด้านบน คุณจะเห็นวิธีแยกวิเคราะห์ URL นี้โดย Edge

  1. ส่วนโดเมนของ URL http://myOrg-prod.apigee.net สอดคล้องกับโฮสต์เสมือนใน Edge ในคําจํากัดความของ ProxyEndpoint ด้านบน พร็อกซี API ใช้แท็ก <VirtualHost> เพื่ออ้างอิงโฮสต์เสมือนชื่อ default คุณสามารถกําหนดโฮสต์เสมือนได้หลายรายการในสภาพแวดล้อม

    โฮสต์เสมือนจะกำหนดโดเมนและพอร์ตที่แสดงพร็อกซี API โฮสต์เสมือนจะกำหนดด้วยว่าพร็อกซี API มีการเข้าถึงโดยใช้โปรโตคอล HTTP หรือโปรโตคอล HTTPS ที่เข้ารหัส ดูข้อมูลโดยละเอียดเกี่ยวกับโฮสต์เสมือนได้ที่เกี่ยวกับโฮสต์เสมือน (เบต้า)
  2. ส่วนที่สองของ URL ซึ่งก็คือ /v1/weather จะกำหนดโดยองค์ประกอบ <BasePath> ใน ProxyEndpoint เส้นทางฐานต้องไม่ซ้ำกันสำหรับพร็อกซี API ของสภาพแวดล้อม เพื่อไม่ให้พร็อกซี API 2 รายการมีเส้นทางฐานเดียวกัน
  3. ส่วนที่สามของ URL คือ /forecastrss เป็นทรัพยากรที่กําหนดโดยพร็อกซี API ที่มีขั้นตอนแบบมีเงื่อนไขที่เกี่ยวข้องซึ่งกําหนดโดยแท็ก <Flows>

วิดีโอ: ดูวิดีโอสั้นๆ เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับปลายทางของพร็อกซี API

การกำหนด URL ของปลายทาง

แท็ก <RouteRule> ในคำจำกัดความ ProxyEndpoint จะกำหนดเป้าหมายของพร็อกซี API และจะได้รับการประเมินหลังจากประมวลผลนโยบายทั้งหมดใน PreFlow, Conditional Flow และ PostFlow ของคำขอ ProxyEndpoint แล้ว

ProxyEndpoint สามารถกําหนดเป้าหมายได้ดังนี้

  • URL โดยตรงไปยังบริการแบ็กเอนด์
  • คําจํากัดความ TargetEndpoint รายการเดียว
  • TargetEndpoints หลายรายการที่พร็อกซี API มอบสิทธิ์คำขอไปยังปลายทางเป้าหมายตามเงื่อนไข
  • เส้นทางหรือเป้าหมาย Null ซึ่งหมายความว่าระบบจะไม่ส่งต่อคําขอไปยังเป้าหมาย แต่การประมวลผลคําขอและการสร้างคําตอบทั้งหมดจะเกิดขึ้นใน Edge

วิดีโอ: ดูวิดีโอสั้นๆ เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับปลายทางเป้าหมาย

URL โดยตรง

ProxyEndpoint สามารถเรียกใช้บริการแบ็กเอนด์ได้โดยตรงโดยข้ามการกำหนดค่า TargetEndpoint ที่มีชื่อ ตัวอย่างเช่น <RouteRule> ต่อไปนี้จะเรียก HTTP ไปยัง http://api.mycompany.com/myAPI เสมอ

<RouteRule name="default">
  <URL>http://api.mycompany.com/myAPI</URL> 
</RouteRule>

อย่างไรก็ตาม เนื่องจากไม่มี TargetEndpoint คุณจึงเพิ่มนโยบายลงในโฟลว์ที่ ProxyEndpoint กำหนดไว้ได้เท่านั้น

เป้าหมายเดียว

ในคําจํากัดความเป้าหมายรายการเดียว ProxyEndpoint จะอ้างอิงคําจํากัดความ TargetEndpoint รายการเดียวตามชื่อ ดังที่แสดงในรูปภาพด้านบน

<RouteRule name="default">
  <TargetEndpoint>default</TargetEndpoint>
</RouteRule>

คำขอทั้งหมดที่ส่งไปยังพร็อกซี API นี้จะนำไปยังคําจํากัดความ TargetEndpoint เดียวกัน แท็ก <URL> ใน TargetEndpoint จะกำหนดตำแหน่งของบริการแบ็กเอนด์ ในรูปภาพด้านบน URL เป้าหมายคือ http://weather.yahooapis.com

เป้าหมายแบบมีเงื่อนไข

แท็ก <RouteRule> ช่วยให้คุณส่งคําขอไปยังเป้าหมายตามเงื่อนไขได้ คุณสามารถใช้ตัวแปรของขั้นตอน พารามิเตอร์การค้นหา ส่วนหัว HTTP เนื้อหาข้อความ หรือข้อมูลตามบริบท เช่น เวลาของวันและภาษา เพื่อระบุปลายทางเป้าหมาย เช่น คุณอาจใส่พื้นที่ทางภูมิศาสตร์ เช่น สหรัฐอเมริกาและสหราชอาณาจักร ใน URL คำขอ จากนั้นคุณจะกำหนดเส้นทางคำขอไปยังปลายทางเป้าหมายตามภูมิภาคได้

กฎเส้นทางต่อไปนี้จะประเมินส่วนหัว HTTP ในคําขอ หากส่วนหัว HTTP routeTo มีค่าเป็น TargetEndpoint1 ระบบจะส่งต่อคำขอไปยัง TargetEndpoint ที่ชื่อ TargetEndpoint1 หากไม่ ระบบจะส่งต่อคำขอไปยัง TargetEndpoint2

<RouteRule name="MyRoute">
  <Condition>request.header.routeTo = "TargetEndpoint1"</Condition>
  <TargetEndpoint>TargetEndpoint1</TargetEndpoint>
</RouteRule>
<RouteRule name="default">
 <TargetEndpoint>TargetEndpoint2</TargetEndpoint>
</RouteRule>

หากคุณมีกฎเส้นทางหลายรายการ ให้สร้างกฎ 1 รายการเป็น "ค่าเริ่มต้น" กล่าวคือ เป็นกฎเส้นทางที่ไม่มีเงื่อนไข ตรวจสอบว่าได้กําหนดกฎเส้นทางเริ่มต้นเป็นรายการสุดท้ายในรายการเส้นทางแบบมีเงื่อนไข เนื่องจากระบบจะประเมินกฎจากบนลงล่างใน ProxyEndpoint

โปรดดูเส้นทางแบบมีเงื่อนไขและข้อมูลอ้างอิงเงื่อนไขด้วย

วิดีโอ: ดูวิดีโอสั้นๆ เพื่อดูวิธีกำหนดเส้นทางไปยังปลายทางเป้าหมายโดยใช้เป้าหมายแบบมีเงื่อนไข

เส้นทาง Null

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

ตัวอย่างต่อไปนี้จะกําหนดเส้นทาง Null

<RouteRule name="GoNowhere"/>

ดูข้อมูลเพิ่มเติม