Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं. जानकारी
शुरुआती जानकारी
Node.js ऐप्लिकेशन में Apigee Edge के flow
वैरिएबल को ऐक्सेस करने के लिए, apigee-access
मॉड्यूल का इस्तेमाल करें. मॉड्यूल में वैरिएबल पाने, सेट करने, और मिटाने के तरीके होते हैं. इसमें इंटीजर वैरिएबल सेट करने का आसान तरीका भी मौजूद है.
फ़्लो वैरिएबल, एपीआई प्रॉक्सी फ़्लो के संदर्भ में मौजूद होते हैं. Edge में कुछ वैरिएबल "बिल्ट-इन" होते हैं. जब नीतियां लागू होती हैं, तब दूसरी बनाई जाती हैं. आपके पास अपने वैरिएबल बनाने का विकल्प होता है. फ़्लो वैरिएबल का इस्तेमाल आम तौर पर, एक नीति से दूसरी नीति में डेटा भेजने और कंडीशनल फ़्लो में शर्तें सेट करने के लिए किया जाता है. फ़्लो वैरिएबल के बारे में जानकारी के लिए, फ़्लो वैरिएबल और शर्तें देखें.
apigee-access
मॉड्यूल और इसकी अन्य सुविधाओं के बारे में जानने के लिए, apigee-access मॉड्यूल का इस्तेमाल करना देखें.
काम करने का उदाहरण
मान लें कि अनुरोध के फ़्लो पाथ पर चलने वाली Edge नीति,
AuthenticatedUserId
नाम का एक वैरिएबल सेट करती है. यह कोड उस वैरिएबल को ऐक्सेस करता है और उसे लॉग में प्रिंट करता है. इसके अलावा, यह कोड एक वैरिएबल सेट करता है. इसके बाद, उस वैरिएबल को किसी नीति से ऐक्सेस किया जा सकता है.
इसके बारे में नीचे बताया गया है.
var http = require('http'); var apigee = require('apigee-access'); http.createServer(function (request, response) { // The request parameter must be a request object that came from the http module var userId = apigee.getVariable(request, 'AuthenticatedUserId'); apigee.setVariable(request, "custom.foo", "Bar"); console.log('Authenticated Apigee User ID is %s', userId); response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World\n'); }).listen(8124); console.log('Server running at http://127.0.0.1:8124/');
इस कोड को JavaScript फ़ाइल में कॉपी किया जा सकता है, इसे Edge पर डिप्लॉय किया जा सकता है, और इसे आज़माया जा सकता है. server.js
फ़ाइल को कॉल करें. इसे डिप्लॉय करने के लिए, इनका इस्तेमाल करें:
apigeetool deploynodeapp -u username -p password -o myorg -e test -n access -d . -m server.js -b /access
ऐप्लिकेशन को Edge में डिप्लॉय करने के बाद, प्रॉक्सीEndpoint अनुरोध के फ़्लो में, नीचे दिए गए कॉन्फ़िगरेशन के साथ AssignmentsMessage नीति जोड़ें:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="AddUserId"> <DisplayName>AddUserId</DisplayName> <FaultRules/> <Properties/> <AssignVariable> <Name>AuthenticatedUserId</Name> <Value>ntesla</Value> <Ref/> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
इसके बाद, TargetEndpoint रिस्पॉन्स प्रीफ़्लो में एक और AssignmentsMessage नीति अटैच करें:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="SetHeader"> <DisplayName>SetHeader</DisplayName> <FaultRules/> <Properties/> <Set> <Headers> <Header name="MySpecialHeader">{custom.foo}</Header> </Headers> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
आप प्रॉक्सी को इस तरह कॉल कर सकते हैं:
curl -i http://myorg-test.apigee.net/access
अब, मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में ऐक्सेस प्रॉक्सी के पेज पर जाएं और डेवलप करें व्यू को खोलें. प्रॉक्सी से लॉग आउटपुट देखने के लिए, Node.js लॉग पर क्लिक करें. अगर प्रॉक्सी को सही तरीके से कॉन्फ़िगर किया गया है, तो आपको दिखेगा कि userId वैरिएबल सेट किया गया था. आपको यह भी दिखेगा कि हेडर को आपकी टर्मिनल विंडो के cURL आउटपुट में सेट किया गया था:
HTTP/1.1 200 OK Content-Type: text/plain Date: Tue, 27 05 2014 23:20:52 GMT MySpecialHeader: Bar Content-Length: 12 Connection: keep-alive
तरीके
getVariable
var result = getVariable(httpRequest, name);
नाम वाला वैरिएबल पाता है.
पैरामीटर:
httpRequest
: अनुरोध का वह ऑब्जेक्ट जो एचटीटीपी मॉड्यूल से मिलता है.name
: (स्ट्रिंग) वापस पाने के लिए, वैरिएबल का नाम.
सामान लौटाना:
वह स्ट्रिंग या संख्या जो setVariable() का इस्तेमाल करके सेट किए गए टाइप के आधार पर तय होती है, जब उसे आपने किसी दूसरी जगह बनाया था या जब किसी नीति ने उसे बनाया था. अगर आप किसी एक आउट-ऑफ़-द-बॉक्स एज वैरिएबल को ऐक्सेस कर रहे हैं, तो आपको वैरिएबल रेफ़रंस में टाइप की सूची मिल सकती है. नीतियों के हिसाब से बनाए गए वैरिएबल टाइप के लिए, नीति का रेफ़रंस विषय देखें.
उदाहरण:
var apigee = require('apigee-access'); // "httpRequest" must be a request object that came from the http module var val1 = apigee.getVariable(request, 'TestVariable'); var val2 = apigee.getVariable(request, 'request.client.ip');
setVariable
setVariable(httpRequest, name, value);
वैरिएबल सेट करता है. कुछ वैरिएबल रीड-ओनली होते हैं और अगर setVariable() तरीके में से किसी एक को सेट करने की कोशिश की जाती है, तो वह तरीका एक अपवाद दिखाता है. यह तय करने के लिए कि कौनसे वैरिएबल रीड-ओनली हैं, वैरिएबल का रेफ़रंस देखें.
पैरामीटर:
httpRequest
: अनुरोध का वह ऑब्जेक्ट जो एचटीटीपी मॉड्यूल से मिलता है.name
: (स्ट्रिंग) वापस पाने के लिए, वैरिएबल का नाम.value
: यह कोई संख्या, स्ट्रिंग, बूलियन, शून्य या तय नहीं हो सकती है.
उदाहरण:
var apigee = require('apigee-access'); apigee.setVariable(request, 'TestVariable', 'bar'); // This will throw an exception because client.ip is read-only. apigee.setVariable(request, 'client.ip');
setIntVariable
setIntVariable(httpRequest, name, value);
setIntVariable() तरीका, सुविधा का एक ऐसा तरीका है जो पहले वैल्यू पैरामीटर को किसी पूर्णांक पर भेजता है. इसके बाद, इसे सेट किया जाता है.
पैरामीटर:
httpRequest
: अनुरोध का वह ऑब्जेक्ट जो एचटीटीपी मॉड्यूल से मिलता है.name
: (स्ट्रिंग) सेट किए जाने वाले वैरिएबल का नाम.value
: वैल्यू पैरामीटर कोई स्ट्रिंग या संख्या होनी चाहिए.
उदाहरण:
var apigee = require('apigee-access'); // Convert "123" to an integer and set it apigee.setIntVariable(request, 'TestVariable', '123'); // Use something that's already a number apigee.setIntVariable(request, 'TestVariable2', 42);
deleteVariable
नाम वाले वैरिएबल को मिटाता है. रीड-ओनली वैरिएबल को मिटाना एक गड़बड़ी है. रीड-ओनली वैरिएबल की पूरी सूची देखने के लिए, वैरिएबल रेफ़रंस देखें.
deleteVariable(httpRequest, name);
पैरामीटर:
httpRequest
: अनुरोध का वह ऑब्जेक्ट जो एचटीटीपी मॉड्यूल से मिलता है.name
: (स्ट्रिंग) मिटाए जाने वाले वैरिएबल का नाम.
उदाहरण:
apigee.deleteVariable(request, 'TestVariable'); // This will throw an exception because client.ip is a read-only variable. apigee.deleteVariable(request, 'client.ip');