रास्तों को समझना

Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं.
जानकारी

कोई रूट, ProxyEndpoint से TargetEndpoint तक के अनुरोध का पाथ तय करता है. रूट में वह यूआरएल शामिल होता है जिसका इस्तेमाल, एपीआई ProxyEndpoint को ऐक्सेस करने के लिए किया जाता है. साथ ही, इसमें TargetEndpoint से तय की गई बैकएंड सेवा का यूआरएल भी शामिल होता है.

रूट के बारे में जानने के लिए यह वीडियो देखें. इसमें ProxyEndpoint और TargetEndpoint के बीच के संबंध के बारे में बताया गया है.

एपीआई प्रॉक्सी एंडपॉइंट का यूआरएल तय करना

नीचे दी गई इमेज में, किसी ऐप्लिकेशन से ProxyEndpoint में आने वाले अनुरोध और उस अनुरोध को बैकएंड सेवा पर भेजे जाने को दिखाया गया है:

Edge पर एपीआई प्रॉक्सी बनाने के बाद, प्रॉक्सी को ऐक्सेस करने के लिए ऐप्लिकेशन जिस डिफ़ॉल्ट यूआरएल का इस्तेमाल करता है उसका फ़ॉर्मैट यह होता है:

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 संगठनों के लिए, दो एनवायरमेंट उपलब्ध कराए जाते हैं: 'test' और 'prod'. एपीआई प्रॉक्सी को डिप्लॉय करते समय, आपके पास इसे एक या दोनों एनवायरमेंट में डिप्लॉय करने का विकल्प होता है.
  • एपीआई प्रॉक्सी बनाते समय, {base-path} और {resource-path} तय किए जाते हैं.

जब Edge में कोई अनुरोध आता है, तो Edge उस अनुरोध को सही ProxyEndpoint पर भेजने के लिए, यूआरएल को पार्स करता है. उदाहरण के लिए, Edge पर एपीआई प्रॉक्सी को ऐक्सेस करने के लिए नीचे दिए गए यूआरएल का इस्तेमाल किया जाता है:

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

ऊपर दिए गए फ़ोटो में, एपीआई प्रॉक्सी के लिए ProxyEndpoint की परिभाषा की जांच करने पर, यह देखा जा सकता है कि एज इस यूआरएल को कैसे पार्स करता है:

  1. यूआरएल का डोमेन वाला हिस्सा, http://myOrg-prod.apigee.net Edge पर मौजूद वर्चुअल होस्ट से मेल खाता है. ऊपर दी गई ProxyEndpoint की परिभाषा में, एपीआई प्रॉक्सी, default नाम के वर्चुअल होस्ट का रेफ़रंस देने के लिए, <VirtualHost> टैग का इस्तेमाल करता है. आपके एनवायरमेंट में एक से ज़्यादा वर्चुअल होस्ट तय किए जा सकते हैं.

    वर्चुअल होस्ट उन डोमेन और पोर्ट की जानकारी देता है जिन पर एपीआई प्रॉक्सी को एक्सपोज़ किया जाता है. वर्चुअल होस्ट से यह भी तय होता है कि एपीआई प्रॉक्सी को एचटीटीपी प्रोटोकॉल का इस्तेमाल करके ऐक्सेस किया जाए या एन्क्रिप्ट किए गए एचटीटीपीएस प्रोटोकॉल का इस्तेमाल करके. वर्चुअल होस्ट के बारे में ज़्यादा जानकारी के लिए, वर्चुअल होस्ट (बीटा वर्शन) के बारे में जानकारी देखें.
  2. यूआरएल का दूसरा हिस्सा, /v1/weather, ProxyEndpoint में मौजूद <BasePath> एलिमेंट से तय होता है. एनवायरमेंट के लिए, एपीआई प्रॉक्सी का बेस पाथ यूनीक होना चाहिए, ताकि दो एपीआई प्रॉक्सी का बेस पाथ एक न हो.
  3. यूआरएल का तीसरा हिस्सा, /forecastrss, एक ऐसा संसाधन है जिसे एपीआई प्रॉक्सी बनाता है. साथ ही, इसमें <Flows> टैग के ज़रिए तय किए गए कंडीशनल फ़्लो के साथ होता है.

वीडियो: एपीआई प्रॉक्सी एंडपॉइंट के बारे में ज़्यादा जानने के लिए, यह छोटा वीडियो देखें.

टारगेट एंडपॉइंट का यूआरएल तय करना

ProxyEndpoint की परिभाषा में मौजूद <RouteRule> टैग, एपीआई प्रॉक्सी का टारगेट तय करता है. साथ ही, ProxyEndpoint अनुरोध के PreFlow, Conditional Flows, और PostFlow में मौजूद सभी नीतियों के प्रोसेस होने के बाद, इसका आकलन किया जाता है.

ProxyEndpoint, टारगेट को इस तरह से तय कर सकता है:

  • बैकएंड सेवा पर ले जाने वाला डायरेक्ट यूआरएल.
  • TargetEndpoint की एक परिभाषा.
  • एक से ज़्यादा टारगेट एंडपॉइंट, जहां एपीआई प्रॉक्सी किसी शर्त के आधार पर, अनुरोध को टारगेट एंडपॉइंट को भेजता है.
  • शून्य रूट या टारगेट, इसका मतलब है कि अनुरोध को किसी टारगेट पर फ़ॉरवर्ड नहीं किया गया है. इसके बजाय, अनुरोध को प्रोसेस करने और जवाब जनरेट करने की पूरी प्रोसेस, Edge पर होती है.

वीडियो: टारगेट एंडपॉइंट के बारे में ज़्यादा जानने के लिए, यह छोटा वीडियो देखें.

डायरेक्ट यूआरएल

ProxyEndpoint, किसी भी TargetEndpoint कॉन्फ़िगरेशन को बायपास करते हुए सीधे बैकएंड सेवा शुरू कर सकता है. उदाहरण के लिए, यहां दिया गया <RouteRule> हमेशा 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>

इस एपीआई प्रॉक्सी के सभी अनुरोध, एक ही TargetEndpoint परिभाषा पर भेजे जाते हैं. TargetEndpoint में मौजूद <URL> टैग, बैकएंड सेवा की जगह तय करता है. ऊपर दिए गए उदाहरण में, टारगेट यूआरएल http://weather.yahooapis.com है.

शर्तों के साथ तय किए गए टारगेट

<RouteRule> टैग की मदद से किसी शर्त के हिसाब से अनुरोध को टारगेट पर भेजा जा सकता है. टारगेट एंडपॉइंट तय करने के लिए, फ़्लो वैरिएबल, क्वेरी पैरामीटर, एचटीटीपी हेडर, मैसेज कॉन्टेंट या काम की जानकारी का इस्तेमाल किया जा सकता है. जैसे, दिन का समय और स्थानीय भाषा. उदाहरण के लिए, अनुरोध के यूआरएल में अमेरिका और यूके जैसे भौगोलिक इलाके शामिल किए जा सकते हैं. इसके बाद, क्षेत्र के हिसाब से किसी टारगेट एंडपॉइंट पर अनुरोध भेजा जा सकता है.

नीचे दिया गया रूट नियम, किसी अनुरोध में एचटीटीपी हेडर का आकलन करता है. अगर एचटीटीपी हेडर routeTo की वैल्यू TargetEndpoint1 है, तो अनुरोध को TargetEndpoint1 नाम के TargetEndpoint पर फ़ॉरवर्ड किया जाता है. अगर ऐसा नहीं है, तो अनुरोध को TargetEndpoint2 को भेज दिया जाता है.

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

अगर आपके पास रास्ते के कई नियम हैं, तो एक नियम को 'डिफ़ॉल्ट' के तौर पर बनाएं. इसका मतलब है कि यह ऐसा रास्ता होगा जिसके लिए कोई शर्त नहीं होगी. पक्का करें कि शर्त वाले रूट की सूची में डिफ़ॉल्ट रूट नियम को आखिरी में तय किया गया है, क्योंकि ProxyEndpoint में नियमों का टॉप-डाउन आकलन किया जाता है.

शर्तों के हिसाब से रूट और शर्तों का रेफ़रंस भी देखें.

वीडियो: शर्त के साथ टारगेट का इस्तेमाल करके, टारगेट किए गए एंडपॉइंट पर रूट करने का तरीका जानने के लिए, यह छोटा वीडियो देखें.

शून्य रूट

शून्य रूट का मतलब है कि ऐसे मामलों में अनुरोध के मैसेज को TargetEndpoint पर फ़ॉरवर्ड करने की ज़रूरत नहीं होती. यह तब काम आता है, जब ProxyEndpoint सभी ज़रूरी प्रोसेस करता है. उदाहरण के लिए, किसी बाहरी सेवा को कॉल करने के लिए JavaScript का इस्तेमाल करके.

यहां दिए गए उदाहरण में, शून्य रूट के बारे में बताया गया है:

<RouteRule name="GoNowhere"/>

ज़्यादा जानें