आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
API प्रॉक्सी या किसी अन्य शेयर किए गए फ़्लो से शेयर किए गए फ़्लो को कॉल करने के लिए, FlowCallout नीति का इस्तेमाल करें.
शेयर किए गए फ़्लो में, चरणों का एक क्रम बनाया जाता है. इसका इस्तेमाल रन टाइम में, कई जगहों से किया जा सकता है. इन चरणों को एपीआई प्रॉक्सी में नीतियों के तौर पर लागू किया जाता है. FlowCallout नीति की मदद से, एपीआई प्रॉक्सी और अन्य शेयर किए गए फ़्लो से शेयर किए गए फ़्लो को लागू किया जा सकता है. यह किसी पारंपरिक प्रोग्रामिंग लैंग्वेज में फ़ंक्शन कॉल की तरह काम करता है.
- उदाहरण के लिए, मान लें कि आपने सुरक्षा सुविधाओं वाला एक शेयर किया गया फ़्लो बनाया है. जैसे, एपीआई पासकोड की पुष्टि, OAuth टोकन की पुष्टि, और रेगुलर एक्सप्रेशन से सुरक्षा. यह शेयर किया गया फ़्लो, इनबाउंड अनुरोधों की जांच करने के तरीके के लिए आपके कन्वेंशन को दिखाता है. FlowCallout नीतियों का इस्तेमाल करके, शेयर किए गए फ़्लो को कई एपीआई प्रॉक्सी से शुरू किया जा सकता है.
- शेयर किए गए फ़्लो में FlowCallout नीति लागू करके, एक शेयर किए गए फ़्लो से दूसरे को कॉल किया जा सकता है.
सैंपल
शेयर किए गए फ़्लो में एपीआई पासकोड की पुष्टि करना
इस उदाहरण में, सुरक्षा से जुड़े सामान्य टास्क पूरे करने के लिए, शेयर किए गए फ़्लो का इस्तेमाल किया गया है. यहां शेयर किया गया फ़्लो, एपीआई पासकोड की पुष्टि करता है. एपीआई प्रॉक्सी और अन्य शेयर किए गए फ़्लो, इस शेयर किए गए फ़्लो में कॉल करने के लिए, FlowCallout नीति का इस्तेमाल कर सकते हैं.
शेयर किए गए फ़्लो की यहां दी गई परिभाषा में, एक Verify-API-Key नीति शामिल है. यह नीति तब लागू होती है, जब एपीआई प्रॉक्सी में FlowCallout नीति से शेयर किए गए फ़्लो को कॉल किया जाता है.
<?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>एपीआई प्रॉक्सी में इस्तेमाल की गई यहां दी गई FlowCallout नीति, एपीआई पासकोड की पुष्टि करने के लिए, पहले वाले शेयर किए गए फ़्लो को कॉल करती है. verify-apikey-shared शेयर किए गए फ़्लो का बंडल (यहां नहीं दिखाया गया है), शेयर किए गए फ़्लो को उसी तरह कॉन्फ़िगर करता है जिस तरह APIProxy बंडल, प्रॉक्सी को कॉन्फ़िगर करता है.
<FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
<DisplayName>Auth Flow Callout</DisplayName>
<SharedFlowBundle>verify-apikey-shared</SharedFlowBundle>
</FlowCallout>शेयर किए गए फ़्लो में पैरामीटर पास करना
इस उदाहरण में, FlowCallout नीति से शेयर किए गए फ़्लो में पैरामीटर पास करने का तरीका बताया गया है. यहां, FlowCallout नीति, शेयर किए गए फ़्लो को कॉल करती है. इस फ़्लो को सामान्य स्ट्रिंग हैंडलिंग फ़ंक्शन करने के लिए डिज़ाइन किया गया है. शेयर किए गए फ़्लो में ऐसा JavaScript शामिल है जो इनपुट को जोड़ता है, इनपुट को लोअरकेस में बदलता है या दोनों काम करता है. FlowCallout नीति, ऐसे पैरामीटर तय करती है जो स्ट्रिंग इनपुट, आउटपुट, और इनपुट के साथ क्या करना है, इसके बारे में बताती है.
String-HandlerFlowCallout नीति, शेयर किए गए फ़्लो को कॉल करती है. साथ ही, ऐसे पैरामीटर पास करती है जो शेयर किए गए फ़्लो के आउटपुट को सेव करने के लिए वैरिएबल, शेयर किए गए फ़्लो के किस ऑपरेशन का इस्तेमाल करना है, और किस इनपुट का इस्तेमाल करना है, यह तय करते हैं. यहां, स्ट्रिंग लिटरल का इस्तेमाल किया गया है. हालांकि, यह फ़्लो वैरिएबल भी हो सकता है.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शेयर किए गए फ़्लो में,SharedStringFunctionsJavaScript नीति शामिल है. यह नीति तब लागू होती है, जब FlowCallout नीति से शेयर किए गए फ़्लो को कॉल किया जाता है.<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SharedFlow name="default"> <Step> <Name>SharedStringFunctions</Name> </Step> </SharedFlow>शेयर किए गए फ़्लो में, यहां दी गई
SharedStringFunctionsJavaScript नीति 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,
SharedStringFunctionsJavaScript नीति के तहत काम करता है. यह स्क्रिप्ट, FlowCallout नीति के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 नीति पर जाता है.
एलिमेंट का रेफ़रंस
इस नीति के लिए, इन एलिमेंट और एट्रिब्यूट को कॉन्फ़िगर किया जा सकता है:
<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>
| डिफ़ॉल्ट |
लागू नहीं अगर आप इस एलिमेंट को छोड़ देते हैं, तो नीति की |
|---|---|
| मौजूदगी | वैकल्पिक |
| टाइप | स्ट्रिंग |
<SharedFlowBundle> एलिमेंट
इससे कॉल किए जाने वाले शेयर किए गए फ़्लो का नाम पता चलता है. इस एलिमेंट की वैल्यू, टारगेट SharedFlowBundle एलिमेंट के name एट्रिब्यूट की वैल्यू के बराबर होनी चाहिए.
<SharedFlowBundle/>
सबसे आसान उदाहरण में, इस एलिमेंट की वैल्यू के तौर पर, कॉल किए जा रहे शेयर किए गए फ़्लो का नाम दिया जाता है. इसका मतलब है कि इस एलिमेंट की वैल्यू, शेयर किए गए फ़्लो के name एट्रिब्यूट की वैल्यू के बराबर होनी चाहिए.
<SharedFlowBundle>Shared-Flow-Name</SharedFlowBundle>
| डिफ़ॉल्ट | लागू नहीं |
| उपलब्धता |
ज़रूरी है. |
| समस्या | लागू नहीं |
विशेषताएं
कोई नहीं.
<Parameter> एलिमेंट
यह पैरामीटर और वैल्यू (या वैल्यू सोर्स) तय करता है, जिसे इस नीति के ज़रिए कॉल किए गए शेयर किए गए फ़्लो में वैरिएबल के तौर पर पास किया जाता है.
पैरामीटर का इस्तेमाल करके, ऐसी वैल्यू (या वैल्यू वाला वैरिएबल) तय की जा सकती है जिसे नीति के ज़रिए कॉल किए गए शेयर किए गए फ़्लो में पास किया जाना चाहिए. यह कॉन्सेप्ट, फ़ंक्शन कॉल में पैरामीटर तय करने जैसा ही है. फ़ंक्शन पैरामीटर की तरह, FlowCallout पैरामीटर की वैल्यू भी शेयर किए गए फ़्लो कॉल के कॉन्टेक्स्ट के आधार पर अलग-अलग हो सकती है.
FlowCallout पैरामीटर, सिर्फ़ शेयर किए गए फ़्लो के एक्ज़ीक्यूशन के दौरान दिखते हैं.
सिंटैक्स
इस एलिमेंट का इस्तेमाल, इनमें से किसी भी सिंटैक्स फ़ॉर्म के साथ किया जा सकता है. ध्यान दें कि लिटरल वैल्यू का इस्तेमाल करने पर, आपकी दी गई वैल्यू का फ़ॉर्मैट उस कोड पर निर्भर करेगा जो इसका इस्तेमाल करता है.
<!- 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 FlowCallout नीति, पैरामीटर पास करती है. इन पैरामीटर से यह तय होता है कि शेयर किए गए फ़्लो का आउटपुट कहां सेव करना है और किस इनपुट का इस्तेमाल करना है. 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>| डिफ़ॉल्ट | लागू नहीं |
| उपलब्धता |
ज़रूरी है. |
| समस्या | लागू नहीं |
विशेषताएं
| एट्रिब्यूट | ब्यौरा | डिफ़ॉल्ट | मौजूदगी | टाइप |
|---|---|---|---|---|
| नाम | इस पैरामीटर के साथ बनाए जाने वाले रनटाइम वैरिएबल का नाम. | कोई नहीं. | ज़रूरी है. | स्ट्रिंग |
| ref |
यह वह वैरिएबल है जिसमें रनटाइम के दौरान इस्तेमाल की जाने वाली वैल्यू होती है. अगर आपको इस्तेमाल करने के लिए कोई लिटरल वैल्यू तय करनी है, तो इस एट्रिब्यूट को शामिल न करें. |
कोई नहीं. | ज़रूरी नहीं. | स्ट्रिंग |
| मान | इस पैरामीटर से बनाए गए रनटाइम वैरिएबल में इस्तेमाल की जाने वाली वैल्यू. अगर आपको ऐसे वैरिएबल का नाम बताना है जिसे वैल्यू सोर्स के तौर पर इस्तेमाल किया जाना चाहिए, तो इस एट्रिब्यूट को शामिल न करें. | कोई नहीं. | ज़रूरी नहीं. | स्ट्रिंग |
<Parameters> एलिमेंट
यह <Parameter> एलिमेंट का सेट तय करता है. इन्हें इस नीति के ज़रिए कॉल किए गए शेयर किए गए फ़्लो में वैरिएबल के तौर पर पास किया जाता है.
सिंटैक्स
<Parameters> <Parameter name="parameter-name" value='parameter-value' /> </Parameters>
| डिफ़ॉल्ट | लागू नहीं |
| उपलब्धता |
ज़रूरी नहीं. |
| समस्या | लागू नहीं |
विशेषताएं
कोई नहीं.
स्कीमा
फ़्लो वैरिएबल
फ़्लो वैरिएबल की मदद से, रनटाइम के दौरान नीतियों और फ़्लो के डाइनैमिक व्यवहार को चालू किया जा सकता है. यह एचटीटीपी हेडर, मैसेज के कॉन्टेंट या फ़्लो के कॉन्टेक्स्ट पर आधारित होता है. फ़्लो वैरिएबल के बारे में ज़्यादा जानने के लिए, वैरिएबल का रेफ़रंस देखें.
| वैरिएबल | ब्यौरा |
|---|---|
|
|
स्कोप: शेयर किए गए फ़्लो को एक्ज़ीक्यूट करने के दौरान शेयर किए गए फ़्लो के नाम एट्रिब्यूट की वैल्यू. |
|
|
स्कोप: फ़्लो हुक से अटैच किए गए शेयर किए गए फ़्लो को एक्ज़ीक्यूट करते समय. फ़्लो हुक का नाम. |
गड़बड़ी की जानकारी
इस सेक्शन में गड़बड़ी के कोड और दिखाए गए गड़बड़ी के मैसेज के बारे में बताया गया है. साथ ही, इस नीति के ट्रिगर होने पर Edge की मदद से सेट किए गए गड़बड़ी वाले वैरिएबल के बारे में बताया गया है. यह जानकारी जानना ज़रूरी है कि क्या आप गड़बड़ियों को ठीक करने के लिए, गड़बड़ी से जुड़े नियम बना रहे हैं. ज़्यादा जानने के लिए, नीति से जुड़ी गड़बड़ियों के बारे में आपके लिए ज़रूरी जानकारी और गड़बड़ियों को ठीक करने के तरीके देखें.
रनटाइम से जुड़ी गड़बड़ियां
नीति के लागू होने पर ये गड़बड़ियां हो सकती हैं.
| गड़बड़ी का कोड | एचटीटीपी कोड स्थिति | वजह | समाधान |
|---|---|---|---|
flow.SharedFlowNotFound |
500 | शेयर किया गया फ़्लो मौजूद नहीं है या शेयर किया गया फ़्लो मौजूद है, लेकिन उसे डिप्लॉय नहीं किया गया है. | build |
डिप्लॉयमेंट से जुड़ी गड़बड़ियां
लागू नहीं
मिलते-जुलते विषय
- शेयर किए गए फ़्लो बनाना: दोबारा इस्तेमाल किए जा सकने वाले शेयर किए गए फ़्लो
- एक से ज़्यादा प्रॉक्सी में शेयर किए गए फ़्लो को लागू करना: फ़्लो हुक का इस्तेमाल करके शेयर किया गया फ़्लो अटैच करना