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

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

शुरुआती जानकारी

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

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

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

प्रॉक्सी ऐप्लिकेशन का मूल स्ट्रक्चर नीचे दिए गए पैटर्न के मुताबिक होता है, जिसमें Node.js ऐप्लिकेशन शामिल होता है. इसमें /apiproxy, /apiproxy, और /apiproxy के लिए बेस /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> एलिमेंट का इस्तेमाल करने वाले टारगेट के बजाय, Node.js ऐप्लिकेशन का रेफ़रंस सीधे तौर पर <ScriptTarget> एलिमेंट से दिया जाता है. जैसे:

<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 पर डिप्लॉय किया जा सकता है.

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

डिप्लॉय करने से पहले, आपको अपने 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" नाम का प्रॉक्सी दिखेगा.

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

अगले चरण

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