फ़्लो वैरिएबल का इस्तेमाल करना

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

सैद्धांतिक तौर पर, फ़्लो वैरिएबल ऐसे ऑब्जेक्ट होते हैं जिन्हें नीतियों या यूटिलिटी (जैसे, Trace tool टूल) से ऐक्सेस किया जा सकता है. इनकी मदद से, Apigee Edge से प्रोसेस किए गए एपीआई लेन-देन से जुड़ी स्थिति को बनाए रखा जा सकता है.

फ़्लो वैरिएबल क्या होते हैं?

फ़्लो वैरिएबल, एपीआई प्रॉक्सी फ़्लो के कॉन्टेक्स्ट में मौजूद होते हैं. ये एपीआई लेन-देन में स्थिति को ट्रैक करते हैं. ठीक उसी तरह जैसे किसी सॉफ़्टवेयर प्रोग्राम में, नाम वाले वैरिएबल स्थिति को ट्रैक करते हैं. फ़्लो वैरिएबल में यह जानकारी सेव होती है:

  • अनुरोध करने वाले ऐप्लिकेशन से भेजा गया आईपी पता, हेडर, यूआरएल पाथ, और पेलोड
  • सिस्टम की जानकारी, जैसे कि Edge को अनुरोध मिलने की तारीख और समय
  • नीति लागू होने पर मिलने वाला डेटा. उदाहरण के लिए, OAuth टोकन की पुष्टि करने वाली नीति लागू होने के बाद, Edge ऐसे फ़्लो वैरिएबल बनाता है जिनमें अनुरोध करने वाले ऐप्लिकेशन के नाम जैसी जानकारी होती है.
  • टारगेट सिस्टम से मिले जवाब के बारे में जानकारी

कुछ वैरिएबल, Edge में "इन-बिल्ट" होते हैं. एपीआई का अनुरोध मिलने पर, ये अपने-आप भर जाते हैं. ये एपीआई लेन-देन के दौरान उपलब्ध होते हैं. AssignMessage नीति या JavaScript, Node.js, और Java कोड जैसी नीतियों का इस्तेमाल करके, अपने कस्टम वैरिएबल भी बनाए जा सकते हैं.

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

फ़्लो वैरिएबल का इस्तेमाल कैसे किया जाता है?

फ़्लो वैरिएबल का इस्तेमाल, नीतियों और शर्तों वाले फ़्लो में किया जाता है:

  • नीतियां, फ़्लो वैरिएबल से स्थिति को वापस पा सकती हैं और उनका इस्तेमाल करके अपना काम कर सकती हैं.

    उदाहरण के लिए, VerifyJWT नीति, पुष्टि किए जाने वाले टोकन को किसी फ़्लो वैरिएबल से वापस पा सकती है. इसके बाद, उस पर पुष्टि की जा सकती है. एक और उदाहरण के तौर पर, a JavaScript नीति, फ़्लो वैरिएबल को वापस पा सकती है और उन वैरिएबल में मौजूद डेटा को एनकोड कर सकती है.

  • शर्तों वाले फ़्लो, Edge के ज़रिए एपीआई के फ़्लो को डायरेक्ट करने के लिए, फ़्लो वैरिएबल का रेफ़रंस दे सकते हैं. यह कुछ-कुछ प्रोग्रामिंग में स्विच स्टेटमेंट की तरह काम करता है.

    उदाहरण के लिए, गड़बड़ी की जानकारी देने वाली नीति सिर्फ़ तब लागू हो सकती है, जब कोई खास फ़्लो वैरिएबल सेट किया गया हो. आखिर में, Node.js के टारगेट ऐप्लिकेशन में, फ़्लो वैरिएबल को पाया और सेट किया जा सकता है.

आइए, इन सभी कॉन्टेक्स्ट में वैरिएबल के इस्तेमाल के उदाहरण देखें.

नीतियों में फ़्लो वैरिएबल

कुछ नीतियां, फ़्लो वैरिएबल को इनपुट के तौर पर लेती हैं.

उदाहरण के लिए, नीचे दी गई AssignMessage नीति फ़्लो वैरिएबल client.ip की वैल्यू लेती है और उसे My-Client-IP नाम के अनुरोध के हेडर में डालती है. अगर इसे अनुरोध फ़्लो में जोड़ा जाता है, तो यह नीति एक हेडर सेट करती है, जिसे बैकएंड टारगेट को पास किया जाता है. अगर इसे जवाब फ़्लो पर सेट किया जाता है, तो हेडर को वापस क्लाइंट ऐप्लिकेशन को भेजा जाता है.

<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>

एक और उदाहरण के लिए, जब कोई Quota नीति लागू होती है, तो नीति से जुड़ी वैल्यू के साथ कई फ़्लो वैरिएबल भर जाते हैं. इन वैरिएबल में से एक को 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 नीति (पहले दिखाई गई) के साथ किए जा सकने वाले काम जैसी ही है. 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 request, TargetEndpoint request, TargetEndpoint response, और ProxyEndpoint response.

इस विषय के बाकी हिस्से में , फ़्लो वैरिएबल के बारे में जानने के दौरान, इस फ़्लो स्ट्रक्चर को ध्यान में रखें.

वैरिएबल का स्कोप, प्रॉक्सी फ़्लो से कैसे जुड़ा होता है

जैसा कि पहले बताया गया है, प्रॉक्सी के ज़रिए मैसेज कैसे फ़्लो होते हैं, यह विज़ुअलाइज़ करने के बाद, आप वैरिएबल के स्कोप को समझना शुरू कर सकते हैं. स्कोप से हमारा मतलब है कि प्रॉक्सी फ़्लो लाइफ़ साइकल में, वैरिएबल को पहली बार कब इंस्टैंशिएट किया जाता है.

उदाहरण के लिए, अगर ProxyEndpoint अनुरोध सेगमेंट से कोई नीति जुड़ी है, तो वह नीति, TargetEndpoint अनुरोध सेगमेंट के स्कोप वाले किसी भी वैरिएबल को ऐक्सेस नहीं कर पाएगी. इसकी वजह यह है कि फ़्लो का TargetEndpoint अनुरोध सेगमेंट अब तक लागू नहीं हुआ है. इसलिए, एपीआई प्रॉक्सी को उस स्कोप में वैरिएबल भरने का मौका नहीं मिला है.

यहां दी गई टेबल में, वैरिएबल के स्कोप की पूरी सूची दी गई है. साथ ही, यह भी बताया गया है कि प्रॉक्सी फ़्लो में ये कब उपलब्ध होते हैं.

वैरिएबल का स्कोप ये वैरिएबल कहां भरे जाते हैं
प्रॉक्सी अनुरोध ProxyEndpoint अनुरोध सेगमेंट
टारगेट अनुरोध TargetEndpoint अनुरोध सेगमेंट
टारगेट जवाब TargetEndpoint जवाब सेगमेंट
प्रॉक्सी जवाब ProxyEndpoint जवाब सेगमेंट
हमेशा उपलब्ध प्रॉक्सी को अनुरोध मिलते ही. ये वैरिएबल, प्रॉक्सी फ़्लो लाइफ़ साइकल के दौरान उपलब्ध होते हैं.

उदाहरण के लिए, Edge में client.ip नाम का एक इन-बिल्ट वैरिएबल है. इस वैरिएबल का स्कोप "प्रॉक्सी अनुरोध" है. यह प्रॉक्सी को कॉल करने वाले क्लाइंट के आईपी पते से अपने-आप भर जाता है. यह तब भरता है, जब कोई अनुरोध पहली बार ProxyEndpoint पर पहुंचता है. साथ ही, यह प्रॉक्सी फ़्लो लाइफ़ साइकल के दौरान उपलब्ध रहता है.

target.url नाम का एक और पहले से बना हुआ वैरिएबल है. इस वैरिएबल का स्कोप "टारगेट अनुरोध" है. यह TargetEndpoint अनुरोध सेगमेंट में, बैकएंड टारगेट को भेजे गए अनुरोध के यूआरएल से भर जाता है. अगर ProxyEndpoint अनुरोध सेगमेंट में target.url को ऐक्सेस करने की कोशिश की जाती है, तो आपको NULL वैल्यू मिलेगी. अगर इस वैरिएबल को स्कोप में आने से पहले सेट करने की कोशिश की जाती है, तो प्रॉक्सी कुछ नहीं करती. न तो कोई गड़बड़ी जनरेट करती है और न ही वैरिएबल सेट करती है.

यहां एक आसान उदाहरण दिया गया है, जिससे वैरिएबल के स्कोप के बारे में समझने में मदद मिलेगी. मान लें कि आपको अनुरोध ऑब्जेक्ट (हेडर, पैरामीटर, मुख्य हिस्सा) का पूरा कॉन्टेंट कॉपी करना है और उसे कॉल करने वाले ऐप्लिकेशन को वापस भेजे जाने वाले जवाब के पेलोड को असाइन करना है. इसके लिए, 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 कोड में भी, फ़्लो वैरिएबल का रेफ़रंस दिया जा सकता है. ज़्यादा जानकारी के लिए, ये देखें:

फ़्लो वैरिएबल का डेटा टाइप

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

मैन्युअल तरीके से बनाए गए वैरिएबल, बनाते समय दिए गए टाइप के होते हैं. साथ ही, यह इस पर निर्भर करता है कि किस तरह की वैल्यू की अनुमति है. उदाहरण के लिए, Node.js कोड में बनाए गए वैरिएबल, नंबर, स्ट्रिंग, बूलियन, नल या अनडिफ़ाइंड तक सीमित होते हैं.

नीतियों में फ़्लो वैरिएबल का इस्तेमाल करना

कई नीतियां, सामान्य तरीके से लागू होने के दौरान, फ़्लो वैरिएबल बनाती हैं. नीति के रेफ़रंस वाले दस्तावेज़ में, नीति के हिसाब से बनाए गए इन सभी वैरिएबल की जानकारी दी गई है.

प्रॉक्सी और नीतियों के साथ काम करते समय, नीति के रेफ़रंस से यह पता करें कि कौनसे वैरिएबल बनाए जाते हैं और उनका इस्तेमाल किस लिए किया जाता है. उदाहरण के लिए, Quota नीति वैरिएबल का एक सेट बनाती है. इसमें कोटा की संख्या और सीमा, समयसीमा खत्म होने का समय वगैरह की जानकारी होती है.

डीबग करने के लिए, नीति के कुछ वैरिएबल काम के होते हैं. उदाहरण के लिए, Trace tool टूल का इस्तेमाल करके यह देखा जा सकता है कि प्रॉक्सी फ़्लो में किसी खास इंस्टेंस पर कौनसे वैरिएबल सेट किए गए थे.

ExtractVariables नीति की मदद से, मैसेज से एक्सट्रैक्ट किए गए डेटा के साथ, कस्टम वैरिएबल भरे जा सकते हैं. क्वेरी पैरामीटर, हेडर, और अन्य डेटा एक्सट्रैक्ट किया जा सकता है. उदाहरण के लिए, मैसेज से खास डेटा एक्सट्रैक्ट करने के लिए, पैटर्न का इस्तेमाल करके अनुरोध और जवाब के मैसेज को पार्स किया जा सकता है.

यहां दिए गए उदाहरण में, Extract Variables, जवाब के मैसेज को पार्स करता है और जवाब से लिया गया खास डेटा सेव करता है. यह नीति, दो कस्टम वैरिएबल 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 कोड में वैरिएबल को ऐक्सेस करने के लिए, इनमें से किसी भी ऑब्जेक्ट पर getter/setter तरीके कॉल करें:

  • 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 ऑब्जेक्ट के साथ बनाया गया है. इसलिए, यह सभी फ़्लो सेगमेंट के लिए उपलब्ध होगा. असल में, यह ग्लोबल वैरिएबल बनाने जैसा है.

JavaCallout नीति के साथ लागू किए गए Java कोड में भी, प्रॉक्सी फ़्लो वैरिएबल को पाया/सेट किया जा सकता है .

Node.js ऐप्लिकेशन में फ़्लो वैरिएबल को ऐक्सेस करना

Edge पर डिप्लॉय किए गए Node.js कोड से, फ़्लो वैरिएबल को पाया, सेट, और मिटाया जा सकता है. इसके लिए, आपको अपने कोड में apigee-access मॉड्यूल को "ज़रूरत के हिसाब से" इस्तेमाल करना होगा. ज़्यादा जानकारी के लिए, Node.js में फ़्लो वैरिएबल को ऐक्सेस करना लेख पढ़ें.

याद रखने वाली बातें

फ़्लो वैरिएबल के बारे में कुछ ज़रूरी बातें यहां दी गई हैं:

  • कुछ "आउट-ऑफ़-द-बॉक्स" वैरिएबल, प्रॉक्सी से अपने-आप इंस्टैंशिएट और भर जाते हैं. इनकी जानकारी, फ़्लो वैरिएबल रेफ़रंस में दी गई है.
  • कस्टम वैरिएबल बनाए जा सकते हैं. ये प्रॉक्सी फ़्लो में इस्तेमाल किए जा सकते हैं. AssignMessage नीति और JavaScript नीति जैसी नीतियों का इस्तेमाल करके, वैरिएबल बनाए जा सकते हैं. साथ ही, Node.js कोड में भी वैरिएबल बनाए जा सकते हैं.
  • वैरिएबल का स्कोप होता है. उदाहरण के लिए, कुछ वैरिएबल तब अपने-आप भर जाते हैं, जब पहली प्रॉक्सी को किसी ऐप्लिकेशन से अनुरोध मिलता है. अन्य वैरिएबल, प्रॉक्सी के जवाब फ़्लो सेगमेंट में भरते हैं. जवाब के वैरिएबल, जवाब सेगमेंट लागू होने तक अनडिफ़ाइंड रहते हैं.
  • नीतियां लागू होने पर, वे नीति के हिसाब से वैरिएबल बना सकती हैं और उन्हें भर सकती हैं. हर नीति के दस्तावेज़ में, नीति के हिसाब से बनाए गए इन सभी काम के वैरिएबल की जानकारी दी गई है.
  • शर्तों वाले फ़्लो आम तौर पर, एक या उससे ज़्यादा वैरिएबल का आकलन करते हैं. शर्तों वाले फ़्लो बनाने के लिए, आपको वैरिएबल के बारे में जानकारी होनी चाहिए.
  • कई नीतियां, वैरिएबल को इनपुट या आउटपुट के तौर पर इस्तेमाल करती हैं. ऐसा हो सकता है कि किसी नीति से बनाया गया वैरिएबल, बाद में किसी दूसरी नीति से इस्तेमाल किया जाए.
  • Node.js में, सीधे JavaScript (और हमारे JavaScript ऑब्जेक्ट मॉडल) या JavaCallout नीति का इस्तेमाल करके, कई फ़्लो वैरिएबल को पाया और सेट किया जा सकता है. JavaCallout नीति, Edge पर कोड लागू करती है.

कोड के संबंधित सैंपल

एपीआई प्रॉक्सी के सैंपल, GitHub पर मौजूद हैं. इन्हें आसानी से डाउनलोड और इस्तेमाल किया जा सकता है. सैंपल डाउनलोड करने और इस्तेमाल करने के बारे में जानकारी के लिए, एपीआई प्रॉक्सी के सैंपल का इस्तेमाल करना लेख पढ़ें. एपीआई प्रॉक्सी के सैंपल और उनके काम के बारे में जानने के लिए, सैंपल की सूची देखें.

वैरिएबल और वैरिएबल प्रोसेसिंग के इस्तेमाल की सुविधा देने वाली सैंपल प्रॉक्सी में ये शामिल हैं:

  • variables - इसमें, ट्रांसपोर्ट और JSON और XML मैसेज कॉन्टेंट के आधार पर, वैरिएबल को एक्सट्रैक्ट और सेट करने का तरीका बताया गया है.
  • policy-mashup-cookbook - यह एक पूरा ऐप्लिकेशन है. इसमें, दो सार्वजनिक एपीआई को कॉल करने, नतीजों को जोड़ने, और क्लाइंट ऐप्लिकेशन के लिए बेहतर जवाब जनरेट करने के लिए, नीति कंपोज़िशन का इस्तेमाल किया जाता है. इस सैंपल के बारे में ज़्यादा जानकारी के लिए, नीति कंपोज़िशन का इस्तेमाल करना लेख पढ़ें.
  • conditional-policy - इसमें, वैरिएबल की वैल्यू के आधार पर, शर्तों वाली नीति को लागू करने का आसान तरीका बताया गया है.

मिलते-जुलते विषय

  • एपीआई प्रॉक्सी में अपने-आप भरने वाले सभी वैरिएबल की सूची, फ़्लो वैरिएबल रेफ़रंस में दी गई है. रेफ़रंस में, हर वैरिएबल का टाइप और स्कोप भी बताया गया है.
  • अगर आपको यह जानना है कि कोई खास नीति, कौनसे वैरिएबल भरती है, तो उस नीति के रेफ़रंस वाला विषय देखें. उदाहरण के लिए, फ़्लो वैरिएबल को Quota नीति के रेफ़रंस में देखें.