एंटीपैटर्न: कस्टम कोड का इस्तेमाल करके या टारगेट के तौर पर प्रॉक्सी में प्रॉक्सी शुरू करें

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

Edge आपको किसी दूसरे एपीआई प्रॉक्सी से, एक एपीआई प्रॉक्सी शुरू करने की सुविधा देता है. यह सुविधा ख़ास तौर पर तब काम आती है, जब आपके पास एपीआई प्रॉक्सी हो. इसमें फिर से इस्तेमाल होने वाला ऐसा कोड होता है जिसे दूसरे एपीआई प्रॉक्सी इस्तेमाल कर सकते हैं.

एंटीपैटर्न

टारगेट एंडपॉइंट में HTTPTargetConnection या कस्टम JavaScript कोड का इस्तेमाल करके, किसी दूसरे एपीआई प्रॉक्सी को शुरू करने से अतिरिक्त नेटवर्क पहुंच जाता है.

HTTPTargetConnection का इस्तेमाल करके, प्रॉक्सी 1 से प्रॉक्सी 2 को शुरू करें

नीचे दिया गया कोड सैंपल, एचटीटीपीTargetConnection का इस्तेमाल करके, प्रॉक्सी 1 से प्रॉक्सी 2 को शुरू करता है:

<!-- /antipatterns/examples/2-1.xml -->
<HTTPTargetConnection>
  <URL>http://myorg-test.apigee.net/proxy2</URL>
</HTTPTargetConnection>

JavaScript कोड से, प्रॉक्सी 1 से प्रॉक्सी 2 को शुरू करें

अगला कोड सैंपल, JavaScript का इस्तेमाल करके, प्रॉक्सी 1 से प्रॉक्सी 2 को शुरू करता है:

<!-- /antipatterns/examples/2-2.xml -->
var response = httpClient.send('http://myorg-test.apigee.net/proxy2);
response.waitForComplete();

कोड फ़्लो

यह समझने के लिए कि इसका नुकसान क्यों है, हमें अनुरोध में बताए गए रूट को समझना होगा, जैसा कि नीचे दिए गए डायग्राम में दिखाया गया है:

पहली इमेज: कोड फ़्लो

जैसा कि डायग्राम में दिखाया गया है, एक अनुरोध रूटर और मैसेज प्रोसेसर के साथ कई डिस्ट्रिब्यूटेड कॉम्पोनेंट को पार करता है.

ऊपर दिए गए कोड सैंपल में, प्रॉक्सी 1 से प्रॉक्सी 2 को शुरू करने का मतलब है कि अनुरोध को रनटाइम के दौरान पारंपरिक रूट (जैसे कि राऊटर > एमपी) से रूट किया जाना चाहिए. यह किसी क्लाइंट से एपीआई शुरू करने जैसा होगा, जिससे ऐसे कई नेटवर्क हो जाएंगे जो इंतज़ार के समय को बढ़ाते हैं. यह तरीका इसलिए गै़र-ज़रूरी है, क्योंकि प्रॉक्सी 1 अनुरोध पहले ही एमपी में "पहुंच" चुका है.

असर

किसी दूसरे एपीआई प्रॉक्सी से एक एपीआई प्रॉक्सी को शुरू करने पर, बेवजह नेटवर्क हॉप होता है. इसी कोशिश में, एक मैसेज प्रोसेसर से दूसरे मैसेज प्रोसेसर पर अनुरोध भेजा जाता है.

सबसे सही तरीका

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

    कोड सैंपल, आपके एंडपॉइंट की परिभाषा में LocalTargetConnection का इस्तेमाल करके, प्रॉक्सी चेन को दिखाता है:

    <!-- /antipatterns/examples/2-3.xml -->
    <LocalTargetConnection>
      <APIProxy>proxy2</APIProxy>
      <ProxyEndpoint>default</ProxyEndpoint>
    </LocalTargetConnection>
    

    शुरू किए गए एपीआई प्रॉक्सी को उसी मैसेज प्रोसेसर के तहत लागू किया जाता है. इस वजह से, यह नेटवर्क हॉप से बच जाता है, जैसा कि नीचे दिए गए डायग्राम में दिखाया गया है:

    दूसरी इमेज: प्रॉक्सी चेन के साथ कोड फ़्लो

इसके बारे में और पढ़ें