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

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

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

यह वीडियो देखें और उसमें रूट के बारे में जानकारी पाएं. साथ ही, प्रॉक्सीEndpoint और TargetEndpoint के बीच संबंध की जानकारी दें.

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

इस इमेज में, किसी ऐप्लिकेशन से प्रॉक्सीEndpoint को आने का अनुरोध दिखाया गया है. साथ ही, यह अनुरोध बैकएंड सेवा पर भेजा जा रहा है:

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 यूआरएल को पार्स करता है, ताकि अनुरोध को सही प्रॉक्सीEndpoint पर ले जाया जा सके. उदाहरण के लिए, नीचे दिए गए यूआरएल का इस्तेमाल Edge पर एपीआई प्रॉक्सी को ऐक्सेस करने के लिए किया जाता है:

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

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

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

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

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

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

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

प्रॉक्सीEndpoint, टारगेट को इस तरह परिभाषित कर सकता है:

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

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

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

प्रॉक्सीEndpoint, सीधे तौर पर बैकएंड सेवा शुरू कर सकता है. ऐसा करते हुए, वह किसी भी TargetEndpoint कॉन्फ़िगरेशन को बायपास कर सकता है. उदाहरण के लिए, नीचे दिया गया <RouteRule> हमेशा <RouteRule> को एक एचटीटीपी कॉल करता है:

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

हालांकि, कोई TargetEndpoint नहीं है, इसलिए आपके पास सिर्फ़ प्रॉक्सीEndpoint के तय किए गए फ़्लो में नीतियां जोड़ने का विकल्प है.

एकल टारगेट

एक टारगेट परिभाषा में, प्रॉक्सीEndpoint नाम के आधार पर एक ही 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>

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

शर्त वाले रास्ते और शर्तों का रेफ़रंस भी देखें.

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

शून्य रूट

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

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

<RouteRule name="GoNowhere"/>

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