यहां Apigee Edge के दस्तावेज़ देखे जा रहे हैं.
पर जाएं
Apigee X दस्तावेज़. info
फ़्लो, एपीआई प्रॉक्सी के बुनियादी बिल्डिंग ब्लॉक होते हैं. फ़्लो की मदद से, एपीआई के व्यवहार को प्रोग्राम किया जा सकता है. इसके लिए, एपीआई प्रॉक्सी से नीतियां और कोड किस क्रम में लागू किए जाते हैं, यह कॉन्फ़िगर किया जा सकता है.
फ़्लो के कॉन्सेप्ट की खास जानकारी के लिए, प्रॉक्सी को फ़्लो के साथ लागू करने का तरीका देखें.
इस विषय में, शर्तें पूरी होने पर लागू होने वाले फ़्लो बनाने और उनमें लॉजिक (नीतियां) जोड़ने का तरीका बताया गया है. शर्तें बनाने के लिए, इस विषय में दी गई जानकारी से ज़्यादा जानकारी की ज़रूरत होती है. ज़्यादा जानकारी के लिए, फ़्लो वैरिएबल की खास जानकारी और फ़्लो वैरिएबल के साथ शर्तें देखें.
फ़्लो में नीतियां जोड़ना
Edge में, पहले से तय की गई कई तरह की नीतियां शामिल होती हैं. इनकी मदद से, सुरक्षा लागू की जा सकती है, ट्रैफ़िक मैनेज किया जा सकता है , और मैसेज में बदलाव किया जा सकता है. इसके अलावा, नीतियों की मदद से, मैसेज प्रोसेसिंग को पूरी तरह से पसंद के मुताबिक बनाने के लिए, अपना कस्टम कोड जोड़ा जा सकता है.
उदाहरण के लिए:
- OAuth सुरक्षा नीति को ProxyEndpoint के अनुरोध PreFlow से जोड़ें. ProxyEndpoint का अनुरोध PreFlow, पाइपलाइन का पहला फ़्लो होता है. इसलिए, अगर कोई अनुरोध आपकी सुरक्षा नीतियों का उल्लंघन करता है, तो उसे तुरंत अस्वीकार किया जा सकता है.
- किसी रिस्पॉन्स को JSON से XML में बदलने के लिए, JSON से XML में बदलने की नीति को TargetEndpoint के रिस्पॉन्स PostFlow से जोड़ें.
- अनुरोध को प्रोसेस करने के लिए JavaScript कोड लागू करने के लिए, JavaScript नीति को Conditional Flow of the ProxyEndpoint से जोड़ें
शर्तें पूरी होने पर लागू होने वाला फ़्लो बनाने के बाद, उसे नीति से जोड़ा जा सकता है. फ़्लो चुनने के बाद, अनुरोध या रिस्पॉन्स के डायग्राम में + चरण आइकॉन पर क्लिक करें. इससे, फ़्लो में नई या मौजूदा नीति जोड़ी जा सकती है.


चुने गए फ़्लो में नीति जोड़कर, एपीआई प्रॉक्सी को कॉन्फ़िगर किया जाता है. इससे, कोटा नीति सिर्फ़ उस फ़्लो के यूआरआई और वर्ब के कॉम्बिनेशन के लिए किए गए अनुरोधों पर लागू होती है. उदाहरण के लिए, अगर अनुरोध में learn फ़्लो में नीति जोड़ी जाती है, तो प्रॉक्सी एडिटर के कोड व्यू में यह एक्सएमएल जनरेट होता है:
<ProxyEndpoint name="default">
...
<Flow name="issue">
<Description/>
<Request>
<Step>
<Name>Quota-2</Name>
</Step>
</Request>
<Response/>
<Condition>(proxy.pathsuffix MatchesPath "/issue/**") and (request.verb = "GET")</Condition>
</Flow>
...
</ProxyEndpoint>इस कॉन्फ़िगरेशन में, अगर एपीआई प्रॉक्सी पर .../issue/** (/issue/ के साथ यूआरआई में आखिरी फ़ॉरवर्ड स्लैश के बाद कुछ भी हो सकता है) के यूआरआई पैटर्न के साथ GET अनुरोध आता है, तो उस एपीआई कॉल पर कोटा लागू होता है.
शर्तें पूरी होने पर लागू होने वाले फ़्लो के बारे में जानकारी
PreFlow या PostFlow से जुड़ी कोई भी नीति हमेशा लागू होती है. हालांकि, शर्तें पूरी होने पर लागू होने वाले फ़्लो में मौजूद नीतियां सिर्फ़ तब लागू होती हैं, जब फ़्लो की शर्त 'सही' के तौर पर आंकी जाती है.
अनुरोध और रिस्पॉन्स की प्रोसेसिंग के दौरान, हर सेगमेंट के लिए सिर्फ़ एक शर्त पूरी होने पर लागू होने वाला फ़्लो लागू होता है. यह वह पहला फ़्लो होता है जिसकी शर्त 'सही' के तौर पर आंकी जाती है. इसका मतलब है कि इनमें से हर एक के हिस्से के तौर पर, शर्त पूरी होने पर लागू होने वाला एक फ़्लो लागू किया जा सकता है:
- ProxyEndpoint की अनुरोध पाइपलाइन
- TargetEndpoint की अनुरोध पाइपलाइन
- ProxyEndpoint की रिस्पॉन्स पाइपलाइन
- TargetEndpoint की रिस्पॉन्स पाइपलाइन
वीडियो: शर्तें पूरी होने पर लागू होने वाले फ़्लो के बारे में ज़्यादा जानने के लिए, यह शॉर्ट वीडियो देखें.
उदाहरण के लिए, ProxyEndpoint की इस परिभाषा में, शर्त पूरी होने पर लागू होने वाला एक फ़्लो दिखाया गया है. इसे एपीआई प्रॉक्सी पर किए गए किसी भी HTTP GET अनुरोध पर ProxyEndpoint लागू करता है:
<ProxyEndpoint name="default">
<PreFlow>
<Request/>
<Response/>
</PreFlow>
<Flows>
<Flow name="Flow-1">
<Condition>request.verb="GET"</Condition>
<Request/>
<Response/>
</Flow>
</Flows>
<PostFlow>
<Request/>
<Response/>
</PostFlow>
...
</ProxyEndpoint>ध्यान दें कि शर्त में, request.verb फ़्लो वैरिएबल का रेफ़रंस दिया गया है. फ़्लो वैरिएबल, रेफ़रंस के नाम होते हैं. इनमें Edge से प्रोसेस किए गए एपीआई लेन-देन से जुड़ी स्थिति की जानकारी होती है. Edge, स्थिति के कई वैरिएबल तय करता है. इनका रेफ़रंस दिया जा सकता है.
RESTful सेवाएं, एपीआई रिसॉर्स के कलेक्शन होती हैं. एपीआई रिसॉर्स, यूआरआई पाथ फ़्रैगमेंट
होता है. इससे किसी ऐसी इकाई की पहचान होती है जिसे डेवलपर, आपके एपीआई को कॉल करके ऐक्सेस कर सकते हैं. उदाहरण के लिए, अगर आपके
सेवा बैकएंड से मौसम की रिपोर्ट और मौसम के पूर्वानुमान मिलते हैं, तो आपका एपीआई, शर्तें पूरी होने पर लागू होने वाले दो
फ़्लो तय कर सकता है. ये फ़्लो, एपीआई
रिसॉर्स: /reports और /forecasts से मैप होते हैं. जब किसी एपीआई कॉल में यूआरएल में इनमें से कोई एक रिसॉर्स शामिल होता है, तो शर्त 'सही' के तौर पर आंकी जाती है. इसके बाद, शर्त पूरी होने पर लागू होने वाले फ़्लो से जुड़ा लॉजिक लागू होता है.
इसके बाद, ऐप्लिकेशन डेवलपर, इस फ़ॉर्मैट में यूआरएल पर अनुरोध करके आपके रिसॉर्स ऐक्सेस करते हैं:
http://myAPIs.myCo.com/weather/reports
या:
http://myAPIs.myCo.com/weather/forecasts
एपीआई प्रॉक्सी में, शर्त पूरी होने पर लागू होने वाला ऐसा फ़्लो तय किया जा सकता है जो किसी खास रिसॉर्स से जुड़ा हो:
<ProxyEndpoint name="default">
<PreFlow>
<Request/>
<Response/>
</PreFlow>
<Flows>
<Flow name="Flow-1">
<Condition>(proxy.pathsuffix MatchesPath "/reports")</Condition>
<Request/>
<Response/>
</Flow>
<Flow name="Flow-2">
<Condition>(proxy.pathsuffix MatchesPath "/forecasts")</Condition>
<Request/>
<Response/>
</Flow>
</Flows>
<PostFlow>
<Request/>
<Response/>
</PostFlow>
...
</ProxyEndpoint>इस उदाहरण में, proxy.pathsuffix फ़्लो वैरिएबल का रेफ़रंस दिया गया है,
इसमें, एपीआई प्रॉक्सी को ऐक्सेस करने के लिए इस्तेमाल किए गए यूआरएल का सफ़िक्स वाला हिस्सा होता है. इसके बाद, हर रिसॉर्स के लिए, शर्त पूरी होने पर लागू होने वाले फ़्लो में अलग-अलग नीतियां जोड़ी जा सकती हैं.
शर्त पूरी होने पर लागू होने वाला फ़्लो जोड़ना
इस छोटे से उदाहरण में, ऐसा फ़्लो सेट अप किया जाता है जो सिर्फ़ तब लागू होता है, जब अनुरोध मैसेज, एक एचटीटीपी जीईटी हो.
शर्त पूरी होने पर लागू होने वाला फ़्लो जोड़ने के लिए, एपीआई प्रॉक्सी बिल्डर में डेवलप करें टैब चुनें.

चुने गए एंडपॉइंट में, + आइकॉन पर क्लिक करें.

शर्त पूरी होने पर लागू होने वाला नया फ़्लो फ़ॉर्म में, फ़्लो को नाम दिया जा सकता है और शर्त कॉन्फ़िगर की जा सकती है. यहां दिए गए उदाहरण में, एक आसान शर्त जोड़ी जाती है. इससे, बेस पाथ के बाद किसी भी यूआरआई पर, GET वर्ब (जैसे, PUT, POST वगैरह के बजाय) के लिए, अनुरोध मैसेज के एचटीटीपी का आकलन किया जाता है.

(फ़्लो वैरिएबल और शर्तों में, शर्तें पूरी होने पर लागू होने वाले स्टेटमेंट बनाने का तरीका जानें.)
नया फ़्लो, Flow-1, अब नेविगेटर मेन्यू में दिखता है.

अब ProxyEndpoint के लिए, एक्सएमएल कॉन्फ़िगरेशन देखें. **नेविगेटर** मेन्यू में, Flow-1 को चुनें.
आपको यह कॉन्फ़िगरेशन दिखेगा.
<PreFlow name="PreFlow">
<Request/>
<Response/>
</PreFlow>
<Flows>
<Flow name="Flow-1">
<Request/>
<Response/>
<Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition>
</Flow>
</Flows>
<PostFlow name="PostFlow">
<Request/>
<Response/>
</PostFlow>अगले चरण
शर्तें बनाने और वैरिएबल इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, ये विषय देखें: