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

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

เส้นทางจะกำหนดเส้นทางของคำขอจาก 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 โดยค่าเริ่มต้น ระบบจะจัดเตรียมสภาพแวดล้อม 2 รายการ ได้แก่ 'test' และ 'prod' ให้กับองค์กร Apigee ทั้งหมดที่สร้างในระบบคลาวด์ เมื่อติดตั้งใช้งานพร็อกซี API คุณสามารถเลือกติดตั้งใช้งานในสภาพแวดล้อมอย่างน้อย 1 รายการ
  • {base-path} และ {resource-path} จะกำหนดขึ้นเมื่อ คุณสร้างพร็อกซี API

เมื่อคำขอเข้ามายัง 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 รายการเดียว
  • TargetEndpoint หลายรายการที่พร็อกซี 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>

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

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

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

เส้นทางเป็นค่า Null

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

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

<RouteRule name="GoNowhere"/>

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