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

आपको 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 की परिभाषा देखें. इससे आपको पता चलेगा कि Edge इस यूआरएल को कैसे पार्स करता है:

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

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

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

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

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

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

  • बैकएंड सेवा का डायरेक्ट यूआरएल.
  • एक TargetEndpoint की परिभाषा.
  • एक से ज़्यादा 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"/>

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