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

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

เส้นทางจะกำหนดเส้นทางของคำขอจาก ProxyEndpoint ไปยัง TargetEndpoint เส้นทางคือ URL ที่ใช้เข้าถึง API ProxyEndpoint และ 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}

ที่ไหน

  • {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 ในภาพด้านบน คุณจะเห็นว่า Edge แยกวิเคราะห์ URL นี้อย่างไร

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

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

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

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

แท็ก <RouteRule> ในคำจำกัดความ ProxyEndpoint จะกำหนดเป้าหมายของพร็อกซี API และมีการประเมินหลังจากนโยบายทั้งหมดใน PreFlow, โฟลว์ตามเงื่อนไข และ 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 มีค่า routeTo ระบบจะส่งต่อคำขอไปยัง TargetEndpoint ที่ชื่อ TargetEndpoint1 หากไม่ ระบบจะส่งต่อคำขอไปยัง TargetEndpoint2

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

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

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

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

เส้นทางที่ไม่มีข้อมูล

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

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

<RouteRule name="GoNowhere"/>

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