किसी मौजूदा एपीआई प्रॉक्सी में Node.js को जोड़ना

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

परिचय

इस विषय में, आपके लोकल फ़ाइल सिस्टम पर मौजूदा प्रॉक्सी में Node.js ऐप्लिकेशन जोड़ने और Apigee Edge पर प्रॉक्सी को डिप्लॉय करने का तरीका बताया गया है.

डेवलपमेंट एनवायरमेंट तैयार करना

इस विषय में, हम मानते हैं कि आपके लोकल सिस्टम पर पहले से ही एक प्रॉक्सी डेवलपमेंट एनवायरमेंट सेट अप है और आपको उसमें Node.js ऐप्लिकेशन इंटिग्रेट करना है.

Node.js ऐप्लिकेशन वाले किसी प्रॉक्सी ऐप्लिकेशन का बुनियादी स्ट्रक्चर, नीचे दिए गए फ़िगर में दिखाए गए पैटर्न के हिसाब से होता है. इसमें रिसॉर्स, टारगेट, और प्रॉक्सी के लिए, एक बेस /apiproxy फ़ोल्डर और सब-फ़ोल्डर होते हैं. apiproxy/resources/node फ़ोल्डर में ही Node.js फ़ाइलें होनी चाहिए. अन्य फ़ोल्डर में ऐसी एक्सएमएल फ़ाइलें होती हैं जिनमें प्रॉक्सी और टारगेट एंडपॉइंट, प्रॉक्सी फ़्लो, कंडीशनल फ़्लो वगैरह के बारे में बताया जाता है. एपीआई प्रॉक्सी स्ट्रक्चर के बारे में ज़्यादा जानकारी के लिए, एपीआई प्रॉक्सी कॉन्फ़िगरेशन का रेफ़रंस देखें.

बस याद रखें कि प्रॉक्सी का हिस्सा होने वाला कोई भी Node.js कोड, /apiproxy/resources/node में डाला जाना चाहिए. डिप्लॉय होने के बाद, Edge को यहीं से कॉन्टेंट मिलता है.

ScriptTarget की मदद से Node.js टारगेट तय करना

Node.js को किसी प्रॉक्सी में इंटिग्रेट करने के लिए, टारगेट एंडपॉइंट की एक्सएमएल फ़ाइल में <ScriptTarget> एलिमेंट की जानकारी देना ज़रूरी है. प्रॉक्सी फ़ाइल के स्ट्रक्चर में, यह एक्सएमएल फ़ाइल apiproxy/targets में होती है. डिफ़ॉल्ट रूप से, फ़ाइल का नाम default.xml होता है.

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

<TargetEndpoint name="default">
    <Description/>
    <Flows/>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
    <HTTPTargetConnection>
        <URL>http://mocktarget.apigee.net/</URL>
    </HTTPTargetConnection>
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
</TargetEndpoint>

<HTTPTargetConnection> एलिमेंट, बैकएंड सेवा, Apigee के यूआरएल के बारे में बताता है मॉक टारगेट सेवा.

हालांकि, Node.js के मामले में, खुद टारगेट Node.js ऐप्लिकेशन है. इसके लिए, apiproxy/targets/default.xml फ़ाइल में, <ScriptTarget> का इस्तेमाल करें.

बैकएंड सेवा के यूआरएल की जानकारी देने के लिए, टारगेट में <HTTPTargetConnection> एलिमेंट का इस्तेमाल करने के बजाय, सीधे <ScriptTarget> एलिमेंट का इस्तेमाल करके Node.js ऐप्लिकेशन का रेफ़रंस दिया जाता है. जैसे:

<TargetEndpoint name="default">
    <ScriptTarget>
         <ResourceURL>node://server.js</ResourceURL>
    </ScriptTarget>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
</TargetEndpoint>

<ResourceURL> पैरामीटर के पहले हमेशा node:// होना चाहिए. इसके बाद, मुख्य Node.js स्क्रिप्ट का नाम होना चाहिए. जैसा कि पहले बताया गया है, Node.js रिसॉर्स को एपीआई प्रॉक्सी स्कोप में /apiproxy/resources/node में होना चाहिए.

ScriptTarget में अतिरिक्त पैरामीटर सेट किए जा सकते हैं. ज़्यादा जानकारी के लिए, ScriptTarget का बेहतर कॉन्फ़िगरेशन देखें.

इस उदाहरण के लिए, यहां मुख्य Node.js फ़ाइल का सोर्स कोड दिया गया है, जिसे server.js कहा जाता है. यह एक बुनियादी एचटीटीपी सर्वर है, जो अनुरोध मिलने पर "नमस्ते, दुनिया के लोगों!" दिखाता है:

var http = require('http');
console.log('node.js application starting...');
var svr = http.createServer(function(req, resp) {
    resp.end('Hello, Node!');
});

svr.listen(process.env.PORT || 9000, function() {
    console.log('Node HTTP server is listening');
});

खास जानकारी के लिए, मान लें कि मुख्य Node.js ऐप्लिकेशन को server.js नाम की फ़ाइल में लागू किया गया है और एंडपॉइंट कॉन्फ़िगरेशन, दोनों का नाम default.xml है. ऐसे में, Node.js स्क्रिप्ट वाली एपीआई प्रॉक्सी का स्ट्रक्चर इस तरह का होगा:

/apiproxy/proxyName.xml
/apiproxy/proxies/default.xml
/apiproxy/targets/default.xml
/apiproxy/resources/node/server.js

ऐप्लिकेशन को डिप्लॉय करने की तैयारी करना

ज़्यादातर Node.js ऐप्लिकेशन में डिपेंडेंसी फ़ाइलें होती हैं और बेस डायरेक्ट्री में package.json फ़ाइल शामिल होती है. इस मामले में, सबसे सही तरीका यह है कि npm यूटिलिटी चलाएं, ताकि यह पक्का किया जा सके कि टॉप-लेवल node_modules डायरेक्ट्री, डिप्लॉयमेंट से पहले डिपेंडेंसी से अपने-आप भर जाए. अगर कोई रिमोट डिपेंडेंसी node_modules में शामिल नहीं है, तो आपका Node.js ऐप्लिकेशन Edge पर नहीं चलेगा.

npm टूल का इस्तेमाल करके, अपने फ़ाइल सिस्टम में सभी डिपेंडेंसी आसानी से वापस पाई जा सकती हैं:

  1. अपने Node.js ऐप्लिकेशन की बेस डायरेक्ट्री से, यह चलाएं:
$ npm install 

या

$ npm update

डिपेंडेंसी इंस्टॉल होने के बाद, Edge पर अपनी प्रॉक्सी को डिप्लॉय किया जा सकता है.

Node.js ऐप्लिकेशन को Apigee Edge पर डिप्लॉय करना

डिप्लॉय करने से पहले, आपको अपने Apigee Edge खाते के लिए, अपने संगठन का नाम, उपयोगकर्ता नाम, और पासवर्ड पता होना चाहिए. डिप्लॉयमेंट टूल के लिए सही निर्देश बनाने के लिए, आपको इस जानकारी की ज़रूरत होगी.

यह निर्देश है. यह मानता है कि (-d फ़्लैग के साथ) आप अपने प्रॉक्सी की रूट डायरेक्ट्री में हैं. अगर आपके प्रॉक्सी को foo कहा जाता है, तो foo डायरेक्ट्री से यह निर्देश डालें:

$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
हर कमांड फ़्लैग का क्या मतलब है, इस बारे में जानने के लिए यह तरीका अपनाएं:

$ apigeetool deployproxy -h

कम शब्दों में जवाब पाने के लिए:

  • -n इस फ़्लैग की मदद से, ऐप्लिकेशन डिप्लॉय होने पर बनने वाली प्रॉक्सी का नाम तय किया जा सकता है. आपको यह नाम, मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में दिखेगा.
  • -d एपीआई प्रॉक्सी की रूट डायरेक्ट्री के बारे में बताता है.
  • -o, -e, -u, और -p से संगठन का नाम, डिप्लॉयमेंट एनवायरमेंट, उपयोगकर्ता का नाम, और पासवर्ड पता चलता है.
बस इतना ही. आपके Node.js ऐप्लिकेशन को एपीआई प्रॉक्सी में रैप किया जाता है, Edge पर डिप्लॉय किया जाता है, और उसे चलाया जाता है. यह अनुरोधों का इंतज़ार कर रही है और जांच के लिए तैयार है.

नए एपीआई प्रॉक्सी की जांच करना

आपने अभी-अभी मौजूदा एपीआई प्रॉक्सी में Node.js ऐप्लिकेशन जोड़ा है और प्रॉक्सी को Apigee Edge में डिप्लॉय किया है! इसकी जांच करने के लिए, यह cURL निर्देश चलाएं. हम मानते हैं कि डिफ़ॉल्ट बेस पाथ (/) का इस्तेमाल किया गया है (बेस पाथ, प्रॉक्सी एंडपॉइंट कॉन्फ़िगरेशन फ़ाइल में बताया गया है). org_name के लिए, अपने संगठन का नाम डालना न भूलें. अगर आपके पास cURL इंस्टॉल नहीं है, तो ब्राउज़र में यूआरएल डाला जा सकता है.

$ curl http://org_name-test.apigee.net/
Hello, Node!

मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में नई प्रॉक्सी देखना

अपने Apigee Edge खाते में लॉग इन करें और एपीआई प्रॉक्सी पेज पर जाएं. आपको वहां "hellonode" नाम की प्रॉक्सी दिखेगी.

प्रॉक्सी के बारे में जानकारी देखने के लिए, "hellonode" पर क्लिक करें. 'डेवलप करें' व्यू में, अपलोड किया गया सोर्स कोड देखा जा सकता है. साथ ही, नीतियां जोड़ी जा सकती हैं, फ़्लो में बदलाव किया जा सकता है वगैरह.

अगले चरण

Apigee Edge पर चल रहे Node.js ऐप्लिकेशन को डीबग करने के बारे में जानकारी पाने के लिए, Node.js प्रॉक्सी को डीबग करना और उससे जुड़ी समस्याएं हल करना लेख पढ़ें.