Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
फ़्लो वैरिएबल ऐसे ऑब्जेक्ट होते हैं जिन्हें अपनी नीतियों या उपयोगिता टूल (जैसे, ट्रेस टूल टूल) से ऐक्सेस किया जा सकता है. इनकी मदद से, Apigee Edge से प्रोसेस किए गए एपीआई लेन-देन से जुड़ी स्थिति को बनाए रखा जा सकता है.
फ़्लो वैरिएबल क्या हैं?
फ़्लो वैरिएबल, एपीआई प्रॉक्सी फ़्लो के संदर्भ में मौजूद होते हैं. ये एपीआई ट्रांज़ैक्शन में स्थिति को उसी तरह ट्रैक करते हैं जिस तरह नाम वाले वैरिएबल, सॉफ़्टवेयर प्रोग्राम में स्थिति को ट्रैक करते हैं. फ़्लो वैरिएबल में इस तरह की जानकारी सेव होती है:
- अनुरोध करने वाले ऐप्लिकेशन से भेजा गया आईपी पता, हेडर, यूआरएल पाथ, और पेलोड
- सिस्टम की जानकारी, जैसे कि Edge को अनुरोध मिलने की तारीख और समय
- नीति लागू होने पर मिलने वाला डेटा. उदाहरण के लिए, OAuth टोकन की पुष्टि करने वाली नीति लागू होने के बाद, Edge ऐसे फ़्लो वैरिएबल बनाता है जिनमें अनुरोध करने वाले ऐप्लिकेशन का नाम जैसी जानकारी होती है.
- टारगेट सिस्टम से मिलने वाले जवाब के बारे में जानकारी
कुछ वैरिएबल, Edge में "पहले से मौजूद" होते हैं. जब भी एपीआई का अनुरोध मिलता है, तो ये वैरिएबल अपने-आप पॉप्युलेट हो जाते हैं. ये किसी भी एपीआई लेन-देन के दौरान उपलब्ध होते हैं. आप AssignMessage नीति जैसी नीतियों या JavaScript, Node.js, और Java कोड जैसी नीतियों का इस्तेमाल करके भी कस्टम वैरिएबल बना सकते हैं.
जैसा कि आपको दिखेगा, वैरिएबल का दायरा होता है. साथ ही, यह भी इस बात पर निर्भर करता है कि वे एपीआई प्रॉक्सी फ़्लो में कब बनाए गए हैं. आम तौर पर, वैरिएबल बनाने के बाद, वह उन सभी नीतियों और कोड के लिए उपलब्ध होता है जो एपीआई ट्रांज़ैक्शन फ़्लो में बाद में लागू होते हैं.
फ़्लो वैरिएबल का इस्तेमाल कैसे किया जाता है?
फ़्लो वैरिएबल का इस्तेमाल नीतियों और शर्त के हिसाब से फ़्लो में किया जाता है:
- नीतियां, फ़्लो वैरिएबल से स्टेटस हासिल कर सकती हैं और उनका इस्तेमाल अपने काम के लिए कर सकती हैं.
उदाहरण के लिए, VerifyJWT नीति को किसी फ़्लो वैरिएबल से पुष्टि करने के लिए टोकन वापस मिल सकता है. इसके बाद, उस पर पुष्टि की जा सकती है. एक और उदाहरण के तौर पर, JavaScript नीति, फ़्लो वैरिएबल को वापस ला सकती है और उन वैरिएबल में मौजूद डेटा को कोड में बदल सकती है.
- कंडिशनल फ़्लो, Edge से किसी एपीआई के फ़्लो को डायरेक्ट करने के लिए, फ़्लो वैरिएबल का रेफ़रंस दे सकता है. यह बिलकुल उसी तरह काम करता है जैसे प्रोग्रामिंग में स्विच स्टेटमेंट के काम करने के लिए किया जाता है.
उदाहरण के लिए, कोई गड़बड़ी दिखाने वाली नीति सिर्फ़ तब लागू हो सकती है, जब कोई खास फ़्लो वैरिएबल सेट हो. आखिर में, Node.js टारगेट ऐप्लिकेशन में फ़्लो वैरिएबल पाए और सेट किए जा सकते हैं.
आइए, इनमें से हर कॉन्टेक्स्ट में वैरिएबल का इस्तेमाल करने के उदाहरण देखें.
नीतियों में फ़्लो वैरिएबल
कुछ नीतियों में इनपुट के तौर पर फ़्लो वैरिएबल का इस्तेमाल किया जाता है.
उदाहरण के लिए, यहां दी गई AssignMessage नीति, फ़्लो वैरिएबल client.ip
की वैल्यू लेती है और उसे My-Client-IP
नाम के अनुरोध हेडर में डालती है. अगर इसे request फ़्लो में जोड़ा जाता है, तो यह नीति एक हेडर सेट करती है
जिसे बैकएंड टारगेट को पास किया जाता है. अगर इसे response फ़्लो पर सेट किया जाता है, तो हेडर को क्लाइंट ऐप्लिकेशन पर भेज दिया जाता है.
<AssignMessage name="set-ip-in-header"> <AssignTo createNew="false" transport="http" type="request">request</AssignTo> <Set> <Headers> <Header name="My-Client-IP">{client.ip}</Header> </Headers> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </AssignMessage>
एक और उदाहरण के लिए, जब कोटा नीति लागू होती है, तो कई फ़्लो वैरिएबल, नीति से जुड़ी वैल्यू से पॉप्युलेट हो जाते हैं. इनमें से एक वैरिएबल को ratelimit.my-quota-policy.used.count
कहा जाता है. यहां my-quota-policy
, कोटा नीति का नाम है.
बाद में, शर्तों पर आधारित ऐसा फ़्लो चलाया जा सकता है जिसमें यह लिखा हो कि "अगर मौजूदा कोटा की संख्या, ज़्यादा से ज़्यादा कोटा की संख्या के 50% से कम है और समय सुबह 9 बजे से शाम 5 बजे के बीच है, तो कोई दूसरा कोटा लागू करें." यह स्थिति, कोटा की मौजूदा संख्या
और system.time
नाम के फ़्लो वैरिएबल पर निर्भर कर सकती है. यह पहले से मौजूद
Edge
वैरिएबल होता है.
कंडिशनल फ़्लो में फ़्लो वैरिएबल
शर्तों के हिसाब से फ़्लो फ़्लो वैरिएबल का आकलन करते हैं और प्रॉक्सी को डाइनैमिक तरीके से काम करने की सुविधा देते हैं. आम तौर पर, शर्तों का इस्तेमाल, फ़्लो, चरणों, और रूट के नियमों के व्यवहार को बदलने के लिए किया जाता है.
यहां एक शर्त वाला फ़्लो दिया गया है, जो प्रॉक्सी फ़्लो चरण में वैरिएबल request.verb
की वैल्यू का आकलन करता है. इस मामले में, अगर
अनुरोध क्रिया POST है, तो VerifyAPIKey नीति लागू की जाती है. यह एक सामान्य पैटर्न है, जिसका इस्तेमाल एपीआई प्रॉक्सी कॉन्फ़िगरेशन में किया जाता है.
<PreFlow name="PreFlow"> <Request> <Step> <Condition>request.verb equals "POST"</Condition> <Name>VerifyApiKey</Name> </Step> </Request> </PreFlow>
अब आपके मन में यह सवाल आ सकता है कि request.verb
,
client.ip
, और system.time
जैसे वैरिएबल कहां से मिलते हैं? इन्हें कब इंस्टैंशिएट किया जाता है और
इनमें वैल्यू कब भरी जाती है? वैरिएबल कब बनाए जाते हैं और वे आपके लिए कब उपलब्ध होते हैं, यह समझने में आपकी मदद करने के लिए, फ़्लो वैरिएबल के स्कोप को समझना लेख पढ़ें.
JavaScript कोड में JavaScript नीति के साथ कॉल किए जाने वाले फ़्लो वैरिएबल
JavaScript नीति की मदद से, एपीआई प्रॉक्सी फ़्लो के संदर्भ में JavaScript कोड को चलाया जा सकता है. इस नीति से लागू होने वाला JavaScript, Apigee के JavaScript ऑब्जेक्ट मॉडल का इस्तेमाल करता है. यह मॉडल, उस एपीआई प्रॉक्सी फ़्लो से जुड़े अनुरोध, रिस्पॉन्स, और कॉन्टेक्स्ट ऑब्जेक्ट का ऐक्सेस, आपके कस्टम कोड को देता है जिसमें आपका कोड लागू हो रहा है. उदाहरण के लिए, यह कोड फ़्लो वैरिएबल target.name से मिली वैल्यू के साथ रिस्पॉन्स हेडर सेट करता है.
context.setVariable("response.header.X-Apigee-Target", context.getVariable("target.name"));
वैरिएबल को पढ़ने और सेट करने के लिए JavaScript का इस्तेमाल करने की यह तकनीक, AssignMessage नीति (पहले दिखाई गई) की मदद से किए जा सकने वाले काम से मिलती-जुलती है. यह Edge पर, इसी तरह के काम करने का एक और तरीका है. यह ध्यान रखना ज़रूरी है कि JavaScript नीति से लागू किए गए JavaScript के पास, एपीआई प्रॉक्सी फ़्लो के स्कोप में मौजूद सभी फ़्लो वैरिएबल का ऐक्सेस होता है.
Node.js कोड में फ़्लो वैरिएबल
apigee-access
मॉड्यूल की ज़रूरत होने पर, Edge पर डिप्लॉय किए गए Node.js कोड में, फ़्लो वैरिएबल सेट और ऐक्सेस किए जा सकते हैं.
यहां एक आसान उदाहरण दिया गया है, जिसमें custom.foo
नाम वाले वैरिएबल की वैल्यू
Bar
पर सेट है. सेट होने के बाद, यह नया वैरिएबल उन सभी नीतियों या अन्य कोड के लिए उपलब्ध हो जाता है जो Node.js कोड के लागू होने के बाद, प्रॉक्सी फ़्लो में दिखते हैं.
var http = require('http'); var apigee = require('apigee-access'); http.createServer(function (request, response) { apigee.setVariable(request, "custom.foo", "Bar"); 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/');
वैरिएबल के साथ काम करने के लिए, apigee-access
का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, Node.js में फ़्लो वैरिएबल ऐक्सेस करना लेख पढ़ें.
फ़्लो वैरिएबल के स्कोप को समझना
वैरिएबल स्कोप, एपीआई प्रॉक्सी कॉल के फ़्लो या पूरे "लाइफ़ साइकल" से जुड़ा होता है.
एपीआई प्रॉक्सी के फ़्लो को विज़ुअलाइज़ करना
फ़्लो वैरिएबल के दायरे को समझने के लिए, यह समझना या विज़ुअलाइज़ करना ज़रूरी है कि एपीआई प्रॉक्सी के ज़रिए मैसेज कैसे फ़्लो करते हैं. एपीआई प्रॉक्सी में, मैसेज प्रोसेस करने के चरणों की एक सीरीज़ होती है, जिसे फ़्लो के तौर पर व्यवस्थित किया जाता है. किसी प्रॉक्सी फ़्लो के हर चरण में, प्रॉक्सी उससे जुड़ी उपलब्ध जानकारी का आकलन करता है और यह तय करता है कि आगे क्या करना है. इस दौरान, प्रॉक्सी नीति कोड को लागू कर सकती है या शर्त के हिसाब से ब्रैंचिंग कर सकती है.
नीचे दिए गए डायग्राम में, फ़्लो के इस क्रम को दिखाया गया है. ध्यान दें कि फ़्लो, कैसे चार मुख्य सेगमेंट से मिलकर बनता है: ProxyEndpoint अनुरोध, TargetEndpoint अनुरोध, TargetEndpoint response और ProxyEndpoint response.
इस विषय के बाकी हिस्से में, फ़्लो वैरिएबल के बारे में जानकारी दी जाएगी. इसलिए, इस फ़्लो स्ट्रक्चर को ध्यान में रखें.
वैरिएबल का दायरा, प्रॉक्सी फ़्लो से कैसे जुड़ा है
जैसा कि पहले बताया गया है, प्रॉक्सी के ज़रिए मैसेज भेजने का तरीका विज़ुअलाइज़ करने के साथ ही, आपको वैरिएबल के स्कोप को समझने में मदद मिलती है. स्कोप का मतलब, प्रॉक्सी फ़्लो के लाइफ़ साइकल में उस बिंदु से है जब किसी वैरिएबल को पहली बार इंस्टैंशिएट किया जाता है.
उदाहरण के लिए, अगर आपने ProxyEndpoint अनुरोध सेगमेंट से कोई नीति अटैच की है, तो वह नीति TargetEndpoint अनुरोध सेगमेंट के दायरे में आने वाले किसी भी वैरिएबल को ऐक्सेस नहीं कर पाएगी. इसकी वजह यह है कि फ़्लो का TargetEndpoint अनुरोध सेगमेंट अब तक लागू नहीं हुआ है. इसलिए, एपीआई प्रॉक्सी को उस स्कोप में वैरिएबल भरने का मौका नहीं मिला है.
नीचे दी गई टेबल में, वैरिएबल के स्कोप का पूरा सेट दिया गया है. साथ ही, यह भी बताया गया है कि वे प्रॉक्सी फ़्लो में कब उपलब्ध होते हैं.
वैरिएबल का दायरा | इन वैरिएबल को कहां पॉप्युलेट किया जाता है |
---|---|
प्रॉक्सी अनुरोध | ProxyEndpoint अनुरोध सेगमेंट |
टारगेट अनुरोध | TargetEndpoint अनुरोध सेगमेंट |
टारगेट रिस्पॉन्स | TargetEndpoint का रिस्पॉन्स सेगमेंट |
प्रॉक्सी रिस्पॉन्स | ProxyEndpoint का रिस्पॉन्स सेगमेंट |
हमेशा उपलब्ध | प्रॉक्सी को अनुरोध मिलते ही. ये वैरिएबल, प्रोक्सी फ़्लो के पूरे लाइफ़ साइकल के दौरान उपलब्ध होते हैं. |
उदाहरण के लिए, client.ip
नाम का एक बिल्ट-इन Edge वैरिएबल होता है. इस वैरिएबल का स्कोप, "प्रॉक्सी अनुरोध" है. यह प्रॉक्सी कहे जाने वाले क्लाइंट के आईपी पते से अपने-आप पॉप्युलेट होता है. यह तब पॉप्युलेट होता है, जब ProxyEndpoint को पहली बार कोई अनुरोध मिलता है. साथ ही, यह प्रोक्सी फ़्लो के पूरे लाइफ़ साइकल के दौरान उपलब्ध रहता है.
एक और बिल्ट-इन वैरिएबल है, जिसे target.url
कहते हैं. इस वैरिएबल का स्कोप,
"टारगेट अनुरोध" है. इसे TargetEndpoint के अनुरोध वाले सेगमेंट में, बैक-एंड टारगेट को भेजे गए
अनुरोध यूआरएल से भरा जाता है. अगर ProxyEndpoint अनुरोध के सेगमेंट में target.url
को ऐक्सेस करने की कोशिश की जाती है, तो आपको शून्य वैल्यू मिलेगी. अगर इस वैरिएबल को स्कोप में आने से पहले सेट करने की कोशिश की जाती है, तो प्रोक्सी कुछ नहीं करता. वह गड़बड़ी जनरेट नहीं करता और वैरिएबल को सेट नहीं करता.
यहां एक आसान उदाहरण दिया गया है, जिसमें वैरिएबल के दायरे के बारे में सोचने का तरीका बताया गया है. मान लें कि आपको किसी अनुरोध ऑब्जेक्ट (हेडर, पैरामीटर, मुख्य हिस्सा) के पूरे कॉन्टेंट को कॉपी करना है और उसे कॉल करने वाले ऐप्लिकेशन को भेजे जाने वाले रिस्पॉन्स पेलोड को असाइन करना है. इसके लिए, AssignMessage नीति का इस्तेमाल किया जा सकता है. नीति का कोड ऐसा दिखता है:
<AssignMessage name="CopyRequestToResponse"> <AssignTo type="response" createNew="false">response</AssignTo> <Copy source="request"/> </AssignMessage>
यह नीति, request
ऑब्जेक्ट को कॉपी करके, उसे response
ऑब्जेक्ट को असाइन कर देती है. हालांकि, प्रॉक्सी फ़्लो में इस नीति को कहां सेट किया जाना चाहिए? इसका जवाब यह है कि इसे TargetEndpoint के जवाब पर डाला जाना चाहिए, क्योंकि रिस्पॉन्स वैरिएबल का दायरा "टारगेट रिस्पॉन्स" है.
फ़्लो वैरिएबल का रेफ़रंस देना
Apigee Edge में पहले से मौजूद सभी वैरिएबल, नाम रखने के लिए बिंदु वाले नोटेशन का इस्तेमाल करते हैं. इस तरीके से,
वैरिएबल का मकसद तय करना आसान हो जाता है. उदाहरण के लिए,
system.time.hour
और request.content
.
काम के वैरिएबल को सही तरीके से व्यवस्थित करने के लिए, Apigee, कई प्रीफ़िक्स सुरक्षित रखता है. इन प्रीफ़िक्स में ये शामिल हैं:
request
response
system
target
नीति में किसी वैरिएबल का रेफ़रंस देने के लिए, उसे कर्ली ब्रैकेट में रखें. उदाहरण के लिए, यहां दी गई AssignMessage नीति, वैरिएबल client.ip
की वैल्यू लेती है और उसे Client-IP
नाम के अनुरोध हेडर में डालती है.
<AssignMessage name="set-ip-in-header"> <AssignTo createNew="false" transport="http" type="request">request</AssignTo> <Set> <Headers> <Header name="Client-IP">{client.ip}</Header> </Headers> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </AssignMessage>
शर्तों के हिसाब से फ़्लो में, कर्ली ब्रैकेट की ज़रूरत नहीं होती. यहां दिए गए उदाहरण में, वैरिएबल request.header.accept
का आकलन करने के लिए शर्त का इस्तेमाल किया गया है:
<Step> <Condition>request.header.accept = "application/json"</Condition> <Name>XMLToJSON</Name> </Step>
JavaScript और Java कोड में भी फ़्लो वैरिएबल का रेफ़रंस दिया जा सकता है. ज़्यादा जानकारी के लिए, देखें:
- JavaScript में वैरिएबल के साथ काम करना
- Node.js में फ़्लो वैरिएबल ऐक्सेस करना
- JavaScript से जुड़ी नीति
फ़्लो वैरिएबल का डेटा टाइप
फ़्लो वैरिएबल की हर प्रॉपर्टी का डेटा टाइप साफ़ तौर पर तय होता है. जैसे, स्ट्रिंग, लॉन्ग, इंटिजर, बूलियन या कलेक्शन. फ़्लो वैरिएबल रेफ़रंस में, डेटा टाइप की सूची देखी जा सकती है. किसी नीति से बनाए गए वैरिएबल के लिए, डेटा टाइप की जानकारी के लिए नीति के रेफ़रंस वाले खास विषय को देखें.
मैन्युअल तरीके से बनाए गए वैरिएबल, बनाए जाने के समय दिए गए टाइप के हिसाब से काम करते हैं. साथ ही, ये वैल्यू के टाइप पर भी निर्भर करते हैं. उदाहरण के लिए, Node.js कोड में बनाए गए वैरिएबल का इस्तेमाल संख्या, स्ट्रिंग, बूलियन, शून्य या तय नहीं किया गया होता है.
नीतियों में फ़्लो वैरिएबल का इस्तेमाल करना
कई नीतियां अपने सामान्य एक्ज़ीक्यूशन के तौर पर फ़्लो वैरिएबल बनाती हैं. नीति के बारे में जानकारी सेक्शन में, नीति के हिसाब से तय किए गए सभी वैरिएबल मौजूद होते हैं.
प्रॉक्सी और नीतियों के साथ काम करते समय, नीति के रेफ़रंस देखना न भूलें. इससे आपको यह पता चलेगा कि कौनसे वैरिएबल बनाए गए हैं और उनका इस्तेमाल किस लिए किया जाता है. उदाहरण के लिए, कोटा नीति, वैरिएबल का एक सेट बनाती है. इसमें कोटा की संख्या और सीमाओं, खत्म होने के समय वगैरह की जानकारी होती है.
नीति के कुछ वैरिएबल, डीबग करने के लिए काम के होते हैं. उदाहरण के लिए, ट्रैक टूल टूल का इस्तेमाल करके, यह देखा जा सकता है कि किसी प्रॉक्सी फ़्लो में किसी खास इंस्टेंस पर कौनसे वैरिएबल सेट किए गए थे.
ExtractVariables नीति की मदद से, मैसेज से निकाले गए डेटा से कस्टम वैरिएबल भरे जा सकते हैं. आपके पास क्वेरी पैरामीटर, हेडर, और अन्य डेटा एक्सट्रैक्ट करने का विकल्प होता है. उदाहरण के लिए, मैसेज से खास डेटा निकालने के लिए, पैटर्न का इस्तेमाल करके अनुरोध और जवाब वाले मैसेज को पार्स किया जा सकता है.
इस उदाहरण में, वैरिएबल निकालें फ़ंक्शन, जवाब वाले मैसेज को पार्स करता है और जवाब से लिया गया खास डेटा सेव करता है. नीति, दो कस्टम वैरिएबल, geocoderesponse.latitude
और geocoderesponse.longitude
बनाती है और उन्हें वैल्यू असाइन करती है.
<ExtractVariables name="ParseGeocodingResponse"> <Source>response</Source> <VariablePrefix>geocoderesponse</VariablePrefix> <JSONPayload> <Variable name="latitude"> <JSONPath>$.results[0].geometry.location.lat</JSONPath> </Variable> <Variable name="longitude"> <JSONPath>$.results[0].geometry.location.lng</JSONPath> </Variable> </JSONPayload> </ExtractVariables>
ध्यान रखें कि कई नीतियों के तहत, अपने-आप वैरिएबल बन जाते हैं. उन वैरिएबल को प्रॉक्सी फ़्लो कॉन्टेक्स्ट में ऐक्सेस किया जा सकता है. इन्हें नीति से जुड़े हर विषय के तहत, नीति से जुड़े दस्तावेज़ में दर्ज किया जाता है.
JavaScript कोड में फ़्लो वैरिएबल के साथ काम करना
एपीआई प्रॉक्सी के संदर्भ में चल रहे JavaScript कोड में, वैरिएबल को सीधे तौर पर ऐक्सेस और सेट किया जा सकता है. Apigee JavaScript ऑब्जेक्ट मॉडल की मदद से, Edge पर चलाए जा रहे JavaScript के पास प्रॉक्सी फ़्लो वैरिएबल का सीधे ऐक्सेस होता है.
JavaScript कोड में वैरिएबल ऐक्सेस करने के लिए, इनमें से किसी भी ऑब्जेक्ट पर गैटर/सेटर मेथड को कॉल करें:
context
proxyRequest
proxyResponse
targetRequest
targetResponse
जैसा कि आप देख सकते हैं, ये ऑब्जेक्ट रेफ़रंस, प्रॉक्सी फ़्लो मॉडल के जाने-पहचाने सेगमेंट से मैप होते हैं. एपीआई प्रॉक्सी के फ़्लो को विज़ुअलाइज़ करना में पहले इस बारे में बताया गया है.
context
ऑब्जेक्ट, "ग्लोबल" तौर पर उपलब्ध वैरिएबल से जुड़ा होता है. जैसे, सिस्टम वैरिएबल. उदाहरण के लिए, मौजूदा साल का पता लगाने के लिए, context
ऑब्जेक्ट पर getVariable()
को कॉल किया जा सकता है:
var year = context.getVariable('system.time.year');
इसी तरह, किसी कस्टम वैरिएबल की वैल्यू सेट करने या
किसी भी लिखने लायक आउट-ऑफ़-द-बॉक्स वैरिएबल के लिए, setVariable()
को कॉल किया जा सकता है. यहां, हम organization.name.myorg
नाम का कस्टम वैरिएबल बनाते हैं और उसे एक वैल्यू असाइन करते हैं.
var org = context.setVariable('organization.name.myorg', value);
यह वैरिएबल context
ऑब्जेक्ट के साथ बनाया गया है, इसलिए यह सभी फ़्लो सेगमेंट के लिए उपलब्ध होगा. असल में, यह ग्लोबल वैरिएबल बनाने जैसा है.
आपके पास Java कोड में ऐसे प्रॉक्सी फ़्लो वैरिएबल पाने/सेट करने का विकल्प भी होता है जिन्हें आपने Javaकॉलआउट नीति के साथ लागू किया है.
Node.js ऐप्लिकेशन में फ़्लो वैरिएबल को ऐक्सेस करना
Edge पर डिप्लॉय किए गए Node.js कोड से फ़्लो वैरिएबल पाए जा सकते हैं, सेट किए जा सकते हैं, और मिटाए जा सकते हैं. आपको बस अपने कोड में apigee-access मॉड्यूल को "ज़रूरी" के तौर पर जोड़ना होगा. ज़्यादा जानकारी के लिए, Node.js में फ़्लो वैरिएबल को ऐक्सेस करना देखें.
आपको क्या याद रखने की ज़रूरत है
फ़्लो वैरिएबल के बारे में याद रखने वाली कुछ ज़रूरी बातें यहां दी गई हैं:
- कुछ "ऑउट-ऑफ़-द-बॉक्स" वैरिएबल, प्रॉक्सी खुद ही इंस्टैंशिएट करता है और अपने-आप पॉप्युलेट करता है. इसे फ़्लो वैरिएबल रेफ़रंस में दस्तावेज़ के तौर पर दर्ज किया गया है.
- आपके पास ऐसे कस्टम वैरिएबल बनाने का विकल्प है जो प्रॉक्सी फ़्लो में इस्तेमाल किए जा सकते हैं. AssignMessage नीति और JavaScript नीति जैसी नीतियों का इस्तेमाल करके, वैरिएबल बनाए जा सकते हैं. साथ ही, Node.js कोड में भी वैरिएबल बनाए जा सकते हैं.
- वैरिएबल का दायरा होता है. उदाहरण के लिए, जब पहली प्रोक्सी को किसी ऐप्लिकेशन से अनुरोध मिलता है, तो कुछ वैरिएबल अपने-आप पॉप्युलेट हो जाते हैं. अन्य वैरिएबल, प्रोक्सी के रिस्पॉन्स फ़्लो सेगमेंट में पॉप्युलेट होते हैं. जब तक रिस्पॉन्स सेगमेंट लागू नहीं हो जाता, तब तक इन रिस्पॉन्स वैरिएबल का पता नहीं चलता है.
- नीतियां लागू होने पर, वे नीति से जुड़े वैरिएबल बना सकती हैं और उनमें जानकारी भर सकती हैं. हर नीति के दस्तावेज़ में, नीति से जुड़े सभी ज़रूरी वैरिएबल की सूची होती है.
- कंडीशनल फ़्लो, आम तौर पर एक या उससे ज़्यादा वैरिएबल का आकलन करते हैं. शर्त के हिसाब से फ़्लो बनाने के लिए, आपको वैरिएबल के बारे में जानना होगा.
- कई नीतियां, वैरिएबल का इस्तेमाल इनपुट या आउटपुट के तौर पर करती हैं. ऐसा हो सकता है कि किसी एक नीति से बनाए गए वैरिएबल का इस्तेमाल, बाद में किसी दूसरी नीति में किया गया हो.
- Node.js में कई फ़्लो वैरिएबल पाने और सेट करने के लिए, सीधे JavaScript (और हमारे JavaScript ऑब्जेक्ट मॉडल) या JavaCallout नीति का इस्तेमाल किया जा सकता है. यह नीति, Edge पर कोड को लागू करती है.
संबंधित कोड के नमूने
एपीआई प्रॉक्सी के सैंपल GitHub पर हैं. इन्हें डाउनलोड और इस्तेमाल करना आसान है. सैंपल डाउनलोड करने और उनका इस्तेमाल करने के बारे में जानने के लिए, सैंपल एपीआई प्रॉक्सी का इस्तेमाल करना देखें. एपीआई प्रोक्सी सैंपल और उनके काम करने के तरीके के बारे में जानने के लिए, सैंपल की सूची देखें.
वैरिएबल और वैरिएबल प्रोसेसिंग का इस्तेमाल करने वाली सैंपल प्रॉक्सी में ये शामिल हैं:
- वैरिएबल - ट्रांसपोर्ट और JSON और एक्सएमएल मैसेज कॉन्टेंट के आधार पर वैरिएबल निकालने और सेट करने का तरीका दिखाता है.
- policy-mashup-cookbook - यह एक ऐसा ऐप्लिकेशन है जो दो सार्वजनिक एपीआई को कॉल करने, नतीजों को जोड़ने, और क्लाइंट ऐप्लिकेशन के लिए बेहतर जवाब जनरेट करने के लिए, नीति कंपोज़िशन का इस्तेमाल करता है. इस सैंपल के बारे में ज़्यादा जानने के लिए, नीति के कंपोज़िशन का इस्तेमाल करना देखें.
- conditional-policy - वैरिएबल वैल्यू के आधार पर, शर्त के साथ नीति उल्लंघन ठीक करने का आसान तरीका लागू करता है.
मिलते-जुलते विषय
- एपीआई प्रॉक्सी में अपने-आप पॉप्युलेट होने वाले सभी वैरिएबल, फ़्लो वैरिएबल रेफ़रंस में शामिल किए गए हैं. रेफ़रंस में, हर वैरिएबल का टाइप और दायरा भी शामिल होता है.
- अगर आपको यह जानना है कि कोई खास नीति किन वैरिएबल को पॉप्युलेट करती है, तो नीति के लिए रेफ़रंस वाला विषय देखें. उदाहरण के लिए, कोटा नीति के रेफ़रंस में, फ़्लो वैरिएबल देखें.