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

คุณกำลังดูเอกสารประกอบ 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 สภาพแวดล้อม ได้แก่ "ทดสอบ" และ "prod" เมื่อทำให้พร็อกซี API ใช้งานได้ คุณสามารถเลือกปรับใช้กับสภาพแวดล้อมใดสภาพแวดล้อมหนึ่งหรือทั้งสองสภาพแวดล้อม
  • ระบบจะกำหนด {base-path} และ {base-path} คุณสร้างพร็อกซี API

เมื่อคำขอมาถึง Edge ทาง Edge จะแยกวิเคราะห์ URL เพื่อส่งคำขอไปยัง Edge 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. ส่วนที่สองของ URL /v1/weather จะกำหนดโดยพารามิเตอร์ องค์ประกอบ <BasePath> ในองค์ประกอบ ProxyEndpoint เส้นทางฐานต้องไม่ซ้ำกับพร็อกซี API สำหรับสภาพแวดล้อมเพื่อให้ พร็อกซี API ไม่มีเส้นทางฐานเดียวกัน
  3. ส่วนที่ 3 ของ URL ชื่อ /forecastrss เป็นทรัพยากรที่กำหนดโดยแท็ก พร็อกซี API ที่มีโฟลว์แบบมีเงื่อนไขที่เกี่ยวข้องซึ่งกำหนดโดยแท็ก <Flows>

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

การระบุ URL ของปลายทางเป้าหมาย

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

ProxyEndpoint สามารถกำหนดเป้าหมายเป็น

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

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

URL โดยตรง

ProxyEndpoint สามารถเรียกใช้บริการแบ็กเอนด์ได้โดยตรง โดยข้ามปลายทางเป้าหมายที่มีชื่อ การกำหนดค่า ตัวอย่างเช่น <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 เดียวกัน &lt;URL&gt; ในส่วน TargetEndpoint จะระบุตำแหน่งของบริการแบ็กเอนด์ ในรูปด้านบนนี้ เป้าหมาย URL คือ http://weather.yahooapis.com

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

แท็ก &lt;RouteRule&gt; จะช่วยให้ คุณจะส่งคำขอไปยังเป้าหมายตามเงื่อนไข คุณสามารถใช้ตัวแปรโฟลว์ การค้นหา พารามิเตอร์, ส่วนหัว 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 สนับสนุนสถานการณ์ที่ไม่จำเป็นต้องส่งต่อข้อความคำขอไปยัง TargetEndpoint ซึ่งจะเป็นประโยชน์เมื่อ ProxyEndpoint ดำเนินการประมวลผลที่จำเป็นทั้งหมด เช่น โดยใช้ JavaScript เพื่อเรียกใช้บริการภายนอก

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

<RouteRule name="GoNowhere"/>

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