फ़्लो कॉन्फ़िगर करना

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

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

फ़्लो के कॉन्सेप्ट से जुड़ी खास जानकारी के लिए, यह कंट्रोल करना कि फ़्लो के साथ प्रॉक्सी कैसे काम करती है.

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

फ़्लो में नीतियां अटैच करना

Edge में सुरक्षा लागू करने, ट्रैफ़िक मैनेज करने, और मैसेज में हेर-फेर करने के लिए, पहले से तय कई तरह की कई नीतियां मौजूद हैं. इसके अलावा, नीतियों की मदद से अपनी पसंद के मुताबिक कोड जोड़ा जा सकता है. इससे मैसेज प्रोसेस करने की प्रोसेस को पूरी तरह से पसंद के मुताबिक बनाया जा सकता है.

उदाहरण के लिए:

  • प्रॉक्सीEndpoint के PreFlow का अनुरोध करने में, OAuth की सुरक्षा नीति अटैच करें. PrivacyEndpoint का अनुरोध PreFlow, पाइपलाइन में पहला फ़्लो है. इसलिए, अगर कोई अनुरोध आपकी सुरक्षा नीतियों का उल्लंघन करता है, तो आपके पास उसे तुरंत अस्वीकार करने का विकल्प होता है.
  • किसी रिस्पॉन्स को JSON से एक्सएमएल में बदलने के लिए, TargetEndpoint के PostFlow में JSON से एक्सएमएल कन्वर्ज़न नीति अटैच करें.
  • अनुरोध को प्रोसेस करने के लिए, JavaScript कोड को एक्ज़ीक्यूट करने के लिए, JavaScript में JavaScript नीति अटैच करें

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

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

'चरण जोड़ें' पैनल में, नीति का एक नया इंस्टेंस बनाया जाता है. इसमें नीति का टाइप कोटा और डिसप्ले नेम कोटा-2 होता है.

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

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

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

कंडिशनल फ़्लो के बारे में जानकारी

PreFlow या PostFlow से जुड़ी कोई भी नीति हमेशा लागू की जाती है. हालांकि, कंडिशनल फ़्लो में नीतियों को सिर्फ़ तब लागू किया जाता है, जब फ़्लो की शर्त का आकलन सही के तौर पर होता है.

किसी अनुरोध और उसके जवाब को प्रोसेस करने के दौरान, हर सेगमेंट के लिए सिर्फ़ एक कंडिशनल फ़्लो लागू किया जाता है. पहला फ़्लो, जिसकी स्थिति 'सही' होती है. इसका मतलब है कि इनमें से हर एक के हिस्से के तौर पर, एक कंडिशनल फ़्लो लागू किया जा सकता है:

  • प्रॉक्सीEndpoint के अनुरोध की पाइपलाइन
  • टारगेटएंडपॉइंट के अनुरोध की पाइपलाइन
  • प्रॉक्सीEndpoint की प्रतिक्रिया पाइपलाइन
  • TargetEndpoint की रिस्पॉन्स पाइपलाइन

वीडियो: कंडिशनल फ़्लो के बारे में ज़्यादा जानने के लिए यह छोटा वीडियो देखें.

उदाहरण के लिए, यहां दी गई प्रॉक्सीEndpoint परिभाषा एक कंडिशनल फ़्लो दिखाती है, जो एपीआई प्रॉक्सी को किसी भी HTTP GET अनुरोध पर प्रॉक्सीEndpoint लागू करता है:

<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 flow वैरिएबल का रेफ़रंस मिलता है. फ़्लो वैरिएबल को पहचान फ़ाइल का नाम दिया जाता है. इसमें 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 वगैरह के उलट) के लिए, अनुरोध वाले मैसेज के एचटीटीपी का आकलन करती है.

नए कंडिशनल फ़्लो पैनल में, फ़्लो को फ़्लो-1 नाम दिया जाता है. साथ ही, स्थिति के टाइप, पाथ, और कार्रवाई को कॉन्फ़िगर किया जाता है.

(फ़्लो वैरिएबल और शर्तों में कंडिशनल स्टेटमेंट बनाने का तरीका जानें.)

Flow-1 नाम का नया फ़्लो अब नेविगेटर मेन्यू में दिखता है.

फ़्लो-1 को हाइलाइट किया गया

अब प्रॉक्सीEndpoint के एक्सएमएल कॉन्फ़िगरेशन को देखें. Flow-1 मेन्यू में, 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>

अगले चरण

नीचे दिए गए विषयों में, कंडिशन बनाने और वैरिएबल का इस्तेमाल करने के बारे में ज़्यादा जानकारी दी गई है: