आपको Apigee Edge दस्तावेज़ दिख रहा है.
Apigee X दस्तावेज़ देखें.

किसी API प्रॉक्सी या अन्य शेयर किए गए फ़्लो से, किसी शेयर किए गए फ़्लो का इस्तेमाल करने के लिए, फ़्लोकॉल आउट नीति का इस्तेमाल करें.
शेयर किए गए फ़्लो में, आपको कई चरणों के क्रम को फिर से इस्तेमाल करने का विकल्प मिलता है. फिर से इस्तेमाल किया जा सकता है. यह तरीका, एपीआई प्रॉक्सी की तरह ही नीतियों के तौर पर लागू किया जाता है. फ़्लो कॉल आउट की नीति से, आपको प्रॉक्सी और अन्य शेयर किए गए फ़्लो के शेयर किए गए फ़्लो को शुरू करने का तरीका मिलता है. यह परंपरागत प्रोग्रामिंग भाषा में एक फ़ंक्शन कॉल की तरह काम करता है.
- उदाहरण के लिए, मान लें कि आपने एपीआई कुंजी की पुष्टि करने, OAuth टोकन की पुष्टि करने, और रेगुलर एक्सप्रेशन की सुरक्षा जैसी सुरक्षा सुविधाओं की मदद से एक शेयर किया गया फ़्लो बनाया है. इस शेयर किए गए फ़्लो में, इनबाउंड अनुरोधों की जांच करने के तरीके के बारे में बताया गया है. फ़्लो कॉल आउट की नीतियों का इस्तेमाल करके, एक से ज़्यादा एपीआई प्रॉक्सी से शेयर किए गए फ़्लो को शुरू किया जा सकता है.
- किसी 'शेयर किए गए फ़्लो' से फ़्लो कॉलआउट नीति लागू करके, एक शेयर किए गए फ़्लो को दूसरे से कॉल किया जा सकता है.
सैंपल
शेयर किए गए फ़्लो में एपीआई कुंजी की पुष्टि करें
इस उदाहरण में, शेयर किए गए फ़्लो का इस्तेमाल, सुरक्षा से जुड़े सामान्य कामों के लिए किया जाता है. यहां शेयर किया गया फ़्लो, एपीआई कुंजी की पुष्टि करता है. एपीआई प्रॉक्सी और शेयर किए गए दूसरे फ़्लो, फ़्लो शेयर करने की नीति का इस्तेमाल कर सकते हैं. इससे, शेयर किए गए इस फ़्लो में कॉल किए जा सकते हैं.
नीचे दिए गए 'शेयर किए गए फ़्लो' की परिभाषा में एक Verify-API-Key
नीति शामिल है. यह नीति तब लागू होती है, जब एपीआई प्रॉक्सी में फ़्लो कॉल आउट नीति को शेयर किए गए फ़्लो का इस्तेमाल किया जाता है.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SharedFlow name="default"> <Step> <Name>Verify-API-Key</Name> </Step> </SharedFlow>
पहले शेयर किए गए फ़्लो में मौजूद VerifyAPIKey
नीति की मदद से मुख्य वैल्यू हासिल की जाती है और उसकी पुष्टि की जाती है.
<VerifyAPIKey async="false" continueOnError="false" enabled="true" name="Verify-API-Key"> <DisplayName>Verify API Key</DisplayName> <APIKey ref="request.queryparam.apikey"/> </VerifyAPIKey>
एपीआई प्रॉक्सी में इस्तेमाल की गई यह फ़्लोकॉल नीति, एपीआई कुंजी की पुष्टि करने के लिए, पहले शेयर किए गए फ़्लो को कॉल करती है. verify-apikey-shared
शेयर किया गया फ़्लो बंडल (यहां नहीं दिखाया गया है), शेयर किए गए फ़्लो को उसी तरह कॉन्फ़िगर करता है जिस तरह किसी प्रॉक्सी प्रॉक्सी बंडल को प्रॉक्सी कॉन्फ़िगर किया जाता है.
<FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout"> <DisplayName>Auth Flow Callout</DisplayName> <SharedFlowBundle>verify-apikey-shared</SharedFlowBundle> </FlowCallout>
शेयर किए गए फ़्लो में पैरामीटर पास करें
इस उदाहरण में, फ़्लोकॉल आउट नीति को शेयर किए गए फ़्लो में पैरामीटर को पास करने का तरीका बताया गया है. यहां, फ़्लोकॉलआउट नीति शेयर किए गए किसी ऐसे फ़्लो को कॉल करती है जो स्ट्रिंग हैंडल करने के सामान्य फ़ंक्शन करने के लिए डिज़ाइन किया गया हो. शेयर किए गए फ़्लो में वह JavaScript शामिल होती है जो इसके इनपुट को शामिल करती है. साथ ही, इसमें इनपुट या अंग्रेज़ी के छोटे अक्षरों का इस्तेमाल करती है. फ़्लोकॉल आउट नीति उन पैरामीटर के बारे में बताती है जो स्ट्रिंग इनपुट, आउटपुट, और इनपुट के साथ क्या करते हैं.
String-Handler
फ़्लोकॉल नीति, शेयर किए गए फ़्लो को कॉल करती है, शेयर किए गए फ़्लो के आउटपुट को स्टोर करने के लिए वैरिएबल तय करने वाले पैरामीटर, शेयर किए जाने वाले फ़्लो ऑपरेशन का इस्तेमाल करती है, और इस्तेमाल किए जाने वाले इनपुट (यहां, स्ट्रिंग लिटरल) और फ़्लो फ़्लो वैरिएबल भी हो सकता है.Parameter
एलिमेंट, रनटाइम बनाने के लिए वैरिएबल के नाम और वैल्यू तय करता है. शेयर किया गया फ़्लो इन वैरिएबल को अपने कोड में इस्तेमाल करने के लिए, फिर से पा सकता है.<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <FlowCallout async="false" continueOnError="false" enabled="true" name="String-Handler"> <DisplayName>String Handler</DisplayName> <Parameters> <Parameter name="input">Gladys Kravitz</Parameter> <Parameter name="operations">concatenate tolowercase</Parameter> <Parameter name="outputVariable">string.handler.output</Parameter> </Parameters> <SharedFlowBundle>StringHandler</SharedFlowBundle> </FlowCallout>
यहां दिए गए
default
शेयर किए गए फ़्लो में,SharedStringFunctions
JavaScript की नीति शामिल है. यह नीति तब लागू होती है, जब शेयर किए गए फ़्लो को, फ़्लोआउट नीति के ज़रिए कॉल किया जाता है.<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SharedFlow name="default"> <Step> <Name>SharedStringFunctions</Name> </Step> </SharedFlow>
शेयर किए गए फ़्लो में, नीचे दी गई
SharedStringFunctions
JavaScript नीति में लागू की गई कोड वाली SharedStringFunctions.js JavaScript फ़ाइल की जानकारी दी गई है.<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="SharedStringFunctions"> <DisplayName>SharedStringFunctions</DisplayName> <Properties/> <ResourceURL>jsc://SharedStringFunctions.js</ResourceURL> </Javascript>
नीचे दिया गया JavaScript, SharedStringFunctions.js,
SharedStringFunctions
JavaScript नीति के आधार पर काम करता है. यह स्क्रिप्ट, फ़्लोआउट नीतिParameter
एलिमेंट से बनाए गए वैरिएबल से वैल्यू हासिल करती है.// Input value from the calling API proxy. var handledString = context.getVariable("input"); // Variable to use for output from this script. var outputVariable = context.getVariable("outputVariable"); // A space-separated list of things to do to the input string. // Convert to lower case to handle unintentional capitals in configuration. var operation = context.getVariable("operations").toLowerCase(); // If "lowercase" was given as an operation, convert the input to lowercase. if (operation.includes("tolowercase")) { handledString = handledString.toLowerCase(); } // If "concatenate" was given as an operation, concatenate the input. if (operation.includes("concatenate")) { handledString = handledString.replace(/\s+/g, ''); } // Assign the resulting string to the output variable specified by // the calling API proxy. context.setVariable(outputVariable, handledString);
- एक्ज़ीक्यूशन, JavaScript की नीति से शेयर की गई फ़्लो में, फिर मूल एपीआई प्रॉक्सी में फ़्लोआउट नीति पर फ़्लो होता है.
एलिमेंट का रेफ़रंस
इस नीति में कॉन्फ़िगर किए जा सकने वाले एलिमेंट और एट्रिब्यूट के बारे में यहां बताया गया है:
<FlowCallout async="false" continueOnError="false" enabled="true" name="Flow-Callout-1"> <DisplayName>Custom label used in UI</DisplayName> <SharedFlowBundle>thereferencedsharedflowbundle</SharedFlowBundle> </FlowCallout>
<FlowCallout> एट्रिब्यूट
<FlowCallout async="false" continueOnError="false" enabled="true" name="Flow-Callout-1">
इस टेबल में उन एट्रिब्यूट के बारे में बताया गया है जो नीति से जुड़े सभी पैरंट एलिमेंट में मौजूद हैं:
एट्रिब्यूट | जानकारी | डिफ़ॉल्ट | मौजूदगी |
---|---|---|---|
name |
नीति का अंदरूनी नाम. इसके अलावा, मैनेजमेंट एलिमेंट के यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में, नीति एलिमेंट को किसी अलग नाम से इस्तेमाल करने के लिए, |
लागू नहीं | ज़रूरी है |
continueOnError |
|
गलत | ज़रूरी नहीं |
enabled |
नीति लागू करने के लिए,
|
सही | ज़रूरी नहीं |
async |
इस एट्रिब्यूट के इस्तेमाल पर रोक लगा दी गई है. |
गलत | बहिष्कृत |
<DisplayName> एलिमेंट
मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में, नीति को लेबल करने के लिए name
एट्रिब्यूट के साथ-साथ इस्तेमाल करें. यह आम तौर पर इस्तेमाल किए जाने वाले भाषा के नाम से मेल खाता है.
<DisplayName>Policy Display Name</DisplayName>
डिफ़ॉल्ट |
लागू नहीं इस एलिमेंट को छोड़ने पर, नीति की |
---|---|
मौजूदगी | ज़रूरी नहीं |
Type | स्ट्रिंग |
<SharedFlowbundle> तत्व
इससे, कॉल करने के लिए शेयर किए गए फ़्लो का नाम मिलता है. इस एलिमेंट की वैल्यू, Shared sharedFlowbundle एलिमेंट के नाम एट्रिब्यूट की वैल्यू से मेल खानी चाहिए.
<SharedFlowBundle/>
सबसे आसान उदाहरण में, शेयर किए गए फ़्लो को इस एलिमेंट की वैल्यू के तौर पर नाम
देते हैं. इसका मतलब है कि इस एलिमेंट की वैल्यू, शेयर किए गए फ़्लो की name
एट्रिब्यूट की वैल्यू से मेल खानी चाहिए.
<SharedFlowBundle>Shared-Flow-Name</SharedFlowBundle>
डिफ़ॉल्ट | लागू नहीं |
मौजूदगी |
ज़रूरी है. |
स्ट्रीम किस तरह की है | लागू नहीं |
विशेषताएं
कोई नहीं.
<पैरामीटर> एलिमेंट
इससे इस नीति के कॉल किए गए शेयर किए गए फ़्लो में वैरिएबल के तौर पर पास करने के लिए पैरामीटर और वैल्यू तय होती है.
पैरामीटर का इस्तेमाल करके, आप ऐसी वैल्यू तय करें जिसमें कोई वैल्यू हो, जिसे नीति की मदद से शेयर किए जाने वाले फ़्लो में पास किया जाना चाहिए. सिद्धांत के तौर पर, यह फ़ंक्शन कॉल में पैरामीटर तय करने जैसा ही है. फ़ंक्शन पैरामीटर की तरह ही, फ़्लो कॉल आउट पैरामीटर की वैल्यू शेयर किए गए फ़्लो कॉल के संदर्भ के हिसाब से अलग-अलग हो सकती है.
फ़्लो कॉलआउट पैरामीटर सिर्फ़ शेयर किए गए फ़्लो के चलने के दौरान ही दिखते हैं.
सिंटैक्स
इस एलिमेंट का इस्तेमाल, इनमें से किसी भी सिंटैक्स के साथ किया जा सकता है. ध्यान दें कि जहां आप लिटरल वैल्यू का इस्तेमाल करते हैं वहां तय की गई वैल्यू का फ़ॉर्मैट, उस कोड के हिसाब से तय होता है जो इसका इस्तेमाल करता है.
<!- A literal value in an attribute. --/> <Parameter name="parameter-name" value='parameter-value' /> <!- A reference to a variable in an attribute. --/> <Parameter name="parameter-name" ref='source-variable-name' /> <!- A literal value in the element content. --/> <Parameter name="parameter-name">parameter-value</Parameter> <!- An reference to an attribute in the element content. --/> <Parameter name="parameter-name">{source-variable-name}</Parameter>
उदाहरण
String-Handler
फ़्लो कॉल आउट नीति पास करने वाले पैरामीटर, जो बताते हैं कि शेयर किए गए फ़्लो का आउटपुट कहां स्टोर करना है और
किस इनपुट का इस्तेमाल करना है. Parameter
एलिमेंट, रनटाइम बनाने के लिए वैरिएबल के नाम और वैल्यू की जानकारी देता है. शेयर किया गया फ़्लो, इन वैरिएबल को अपने कोड में इस्तेमाल करने के लिए, फिर से पा सकता है.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <FlowCallout async="false" continueOnError="false" enabled="true" name="String-Handler"> <DisplayName>String Handler</DisplayName> <Parameters> <Parameter name="input">Gladys Kravitz</Parameter> <Parameter name="outputVariable">string.handler.output</Parameter> </Parameters> <SharedFlowBundle>StringHandler</SharedFlowBundle> </FlowCallout>
डिफ़ॉल्ट | लागू नहीं |
मौजूदगी |
ज़रूरी है. |
स्ट्रीम किस तरह की है | लागू नहीं |
विशेषताएं
एट्रिब्यूट | जानकारी | डिफ़ॉल्ट | मौजूदगी | Type |
---|---|---|---|---|
नाम | इस पैरामीटर से बनाए जाने वाले रनटाइम वैरिएबल का नाम. | कोई नहीं. | ज़रूरी है. | स्ट्रिंग |
संदर्भ |
वैरिएबल में वह वैल्यू होती है जो रनटाइम के दौरान इस्तेमाल की जाती है. अगर इस्तेमाल करने के लिए लिटरल वैल्यू तय की जा रही है, तो इस एट्रिब्यूट का इस्तेमाल न करें. |
कोई नहीं. | ज़रूरी नहीं. | स्ट्रिंग |
value | इस पैरामीटर से बनाए गए रनटाइम वैरिएबल में इस्तेमाल की जाने वाली वैल्यू. अगर आप ऐसे वैरिएबल का नाम बता रहे हैं जो वैल्यू का स्रोत होना चाहिए, तो इस एट्रिब्यूट का इस्तेमाल न करें. | कोई नहीं. | ज़रूरी नहीं. | स्ट्रिंग |
<पैरामीटर> एलिमेंट
इस नीति के कॉल किए गए शेयर फ़्लो में वैरिएबल के रूप में पास करने के लिए <parameter> एलिमेंट के सेट के बारे में बताता है.
सिंटैक्स
<Parameters> <Parameter name="parameter-name" value='parameter-value' /> </Parameters>
डिफ़ॉल्ट | लागू नहीं |
मौजूदगी |
ज़रूरी नहीं. |
स्ट्रीम किस तरह की है | लागू नहीं |
विशेषताएं
कोई नहीं.
स्कीमा
फ़्लो वैरिएबल
फ़्लो वैरिएबल, एचटीटीपी हेडर, मैसेज के कॉन्टेंट या फ़्लो के कॉन्टेक्स्ट के आधार पर, नीतियों का डाइनैमिक व्यवहार चालू करते हैं. फ़्लो वैरिएबल के बारे में ज़्यादा जानकारी के लिए, वैरिएबल का रेफ़रंस देखें.
वैरिएबल | जानकारी |
---|---|
|
दायरा: शेयर किए गए फ़्लो के दौरान शेयर किए गए फ़्लो के नाम एट्रिब्यूट की वैल्यू. |
|
दायरा: फ़्लो हुक से अटैच शेयर किए गए फ़्लो के चलने के दौरान. फ़्लो हुक का नाम. |
गड़बड़ी का रेफ़रंस
इस सेक्शन में उन गड़बड़ी कोड और लौटाए गए गड़बड़ी के मैसेज के बारे में बताया गया है जो गड़बड़ी नीति के ट्रिगर होने पर Edge से सेट किए जाते हैं. यह जानकारी होना ज़रूरी है, ताकि आप ऐसे नियम बना सकें जो गड़बड़ी को ठीक कर सकें. ज़्यादा जानने के लिए, नीति से जुड़ी गड़बड़ियों के बारे में ज़रूरी जानकारी और गड़बड़ी ठीक करना देखें.
रनटाइम से जुड़ी गड़बड़ियां
नीति के लागू होने पर ये गड़बड़ियां हो सकती हैं.
गड़बड़ी कोड | एचटीटीपी कोड स्थिति | वजह | समाधान |
---|---|---|---|
flow.SharedFlowNotFound |
500 | या तो शेयर किया गया फ़्लो मौजूद नहीं है या शेयर किया गया फ़्लो मौजूद नहीं है, लेकिन उसे डिप्लॉय नहीं किया गया है. | build |
डिप्लॉयमेंट से जुड़ी गड़बड़ियां
लागू नहीं