ফ্লো কনফিগার করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

ফ্লো হল API প্রক্সি তৈরির মূল উপাদান। ফ্লো আপনাকে API-এর আচরণ প্রোগ্রাম করতে দেয়। এর জন্য, API প্রক্সি যে ক্রম অনুযায়ী নীতি ও কোড এক্সিকিউট করে, সেই ক্রম কনফিগার করতে দেয়।

ফ্লোয়ের কনসেপচুয়াল ওভারভিউ পেতে, প্রক্সি কীভাবে ফ্লো এক্সিকিউট করে তা কন্ট্রোল করাদেখুন।

এই বিষয়ে কীভাবে কন্ডিশনাল ফ্লো তৈরি করতে হয় এবং ফ্লোতে হাই লেভেলে লজিক (নীতি) যোগ করতে হয় তা বর্ণনা করা হয়েছে। কন্ডিশন তৈরি করার আর্ট এই বিষয়ে কভার করা বিষয়ের চেয়ে অনেক বেশি বিস্তারিত। সেইসব বিবরণ পেতে, ফ্লোর ওভারভিউ ভেরিয়েবল এবং ফ্লো ভেরিয়েবল সহ কন্ডিশন দেখুন।

ফ্লোতে নীতি অ্যাটাচ করা

নিরাপত্তা প্রয়োগ, ট্রাফিক ম্যানেজ ও মেসেজ ম্যানিপুলেট করার জন্য Edge-এ আগে থেকেই সংজ্ঞায়িত বিভিন্ন ধরনের নীতি থাকে। এছাড়াও, নীতি আপনাকে মেসেজ প্রসেসিং সম্পূর্ণ কাস্টমাইজ করতে নিজের কাস্টম কোড যোগ করতে দেয়।

যেমন:

  • OAuth সুরক্ষা নীতি ProxyEndpoint-এর অনুরোধ PreFlow-এর সাথে অ্যাটাচ করুন। যেহেতু ProxyEndpoint-এর অনুরোধ PreFlow হল পাইপলাইনের প্রথম ফ্লো, তাই এটি আপনার নিরাপত্তা সংক্রান্ত নীতি লঙ্ঘন করলে আপনি সঙ্গে সঙ্গে অনুরোধ বাতিল করে দিতে পারেন।
  • JSON থেকে XML কনভার্সন নীতি TargetEndpoint-এর রেসপন্স PostFlow-এর সাথে অ্যাটাচ করে JSON থেকে XML-এ রেসপন্স কনভার্ট করুন।
  • অনুরোধ প্রসেস করার জন্য জাভাস্ক্রিপ্ট কোড এক্সিকিউট করতে কন্ডিশনাল ফ্লো অফ দ্য ProxyEndpoint-এর সাথে JavaScript নীতি অ্যাটাচ করুন

আপনি কন্ডিশনাল ফ্লো তৈরি করার পরে, সেটি নীতি অ্যাটাচ করার জন্য উপলভ্য হয়। বেছে নেওয়া ফ্লোয়ের সাথে ফ্লোতে নতুন বা আগে থেকে থাকা নীতি যোগ করতে, অনুরোধ বা উত্তর ডায়াগ্রামে + ধাপ আইকনে ক্লিক করুন।

নেভিগেটর মেনুতে, issue নামের একটি উদাহরণ কন্ডিশনাল ফ্লো হাইলাইট করা হয়েছে এবং
    ফ্লো প্যানেলে, Step বোতাম দেখানো হয়েছে।

'ধাপ যোগ করুন' প্যানেলে, কোটা নীতি এবং
    ডিসপ্লে নাম কোটা-২ সহ একটি নতুন নীতি ইনস্ট্যান্স তৈরি করা হয়।

বেছে নেওয়া ফ্লোতে নীতি অ্যাটাচ করার মাধ্যমে, আপনি API প্রক্সি কনফিগার করছেন যাতে কোটা নীতি শুধুমাত্র সেই ফ্লো URI ও ভার্ব কম্বিনেশনের জন্য করা অনুরোধের ক্ষেত্রে প্রয়োগ করা যায়। যেমন, আপনি যদি অনুরোধে জানুন ফ্লোতে নীতি অ্যাটাচ করেন, তাহলে প্রক্সি এডিটরের কোড ভিউতে নিম্নলিখিত XML জেনারেট হয়:

<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 অনুরোধ API প্রক্সিতে URI প্যাটার্ন .../issue/** (/issue/ সহ শেষ ফরওয়ার্ড স্ল্যাশের পরে URI-তে যেকোনও কিছু) সহ আসে, তাহলে সেই API কলের উপর কোটা প্রয়োগ করা হয়।

শর্তসাপেক্ষ ফ্লো সম্পর্কে

PreFlow বা PostFlow-এর সাথে যুক্ত যেকোনও নীতি সবসময় প্রয়োগ করা হয়। তবে, শর্তাধীন ফ্লোতে নীতি তখনই প্রয়োগ করা হয় যখন ফ্লোয়ের শর্ত সত্য হিসেবে মূল্যায়ন করা হয়।

অনুরোধ ও উত্তর প্রসেস করার সময়, প্রতিটি সেগমেন্টে একটি করে কন্ডিশনাল ফ্লো এক্সিকিউট করা হয়--যে ফ্লোয়ের কন্ডিশন সত্য হিসেবে মূল্যায়ন করা হয়। এর অর্থ হল, আপনি এগুলির প্রতিটি অংশ হিসেবে একটি শর্তাধীন ফ্লো এক্সিকিউট করতে পারবেন:

  • ProxyEndpoint-এর অনুরোধ পাইপলাইন
  • TargetEndpoint-এর অনুরোধ পাইপলাইন
  • ProxyEndpoint-এর উত্তর পাইপলাইন
  • TargetEndpoint-এর রেসপন্স পাইপলাইন

ভিডিও: শর্তসাপেক্ষ ফ্লো সম্পর্কে আরও জানতে একটি ছোট ভিডিও দেখুন।

যেমন, নিম্নলিখিত ProxyEndpoint সংজ্ঞা একটি কন্ডিশনাল ফ্লো দেখায় যা API প্রক্সিতে করা যেকোনও 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 flow ভেরিয়েবলকে রেফার করে। ফ্লো ভেরিয়েবল হল এমন রেফারেন্স যার মধ্যে Edge-এর প্রসেস করা API ট্রানজ্যাকশনের সাথে যুক্ত স্টেট সংক্রান্ত তথ্য থাকে। Edge অনেক স্টেট ভেরিয়েবলকে সংজ্ঞায়িত করে যেগুলি আপনি রেফারেন্স করতে পারবেন।

RESTful পরিষেবা হল API রিসোর্সের সংগ্রহ। API রিসোর্স হল URI পাথ ফ্র্যাগমেন্ট যা এমন কোনও এন্টিটি শনাক্ত করে যা ডেভেলপাররা আপনার API কল করে অ্যাক্সেস করতে পারেন। যেমন, আপনার পরিষেবা ব্যাকএন্ড যদি আবহাওয়া সংক্রান্ত রিপোর্ট ও পূর্বাভাস দেয়, তাহলে আপনার API দুটি কন্ডিশনাল ফ্লো নির্ধারণ করতে পারে যা সেইসব API সম্পদের সাথে ম্যাপ করে: /reports ও /forecasts। কোনও API কল URL-এ সেইসব রিসোর্সের কোনও একটি অন্তর্ভুক্ত করলে, কন্ডিশনটি 'সত্য' হিসেবে মূল্যায়ন করা হয় এবং কন্ডিশনাল ফ্লোয়ের সাথে অ্যাটাচ করা লজিক এক্সিকিউট করা হয়।

অ্যাপ ডেভেলপাররা তারপরে এই ফর্ম্যাটে URL-এ অনুরোধ করে আপনার রিসোর্স অ্যাক্সেস করেন:

http://myAPIs.myCo.com/weather/reports

অথবা:

http://myAPIs.myCo.com/weather/forecasts

API প্রক্সিতে, আপনি এমন একটি শর্তসাপেক্ষ ফ্লো নির্ধারণ করতে পারেন যা একটি নির্দিষ্ট রিসোর্সের সাথে সম্পর্কিত:

<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 ফ্লো ভেরিয়েবলকে রেফার করছেন, যার মধ্যে API প্রক্সি অ্যাক্সেস করার জন্য ব্যবহৃত URL-এর সাফিক্স অংশটি রয়েছে। তারপরে, প্রতিটি রিসোর্সের জন্য শর্তাধীন ফ্লোতে আলাদা আলাদা নীতি অ্যাটাচ করতে পারবেন।

শর্তসাপেক্ষ ফ্লো যোগ করা

এই সংক্ষিপ্ত উদাহরণে, আপনি এমন একটি ফ্লো সেট-আপ করেছেন যা শুধুমাত্র অনুরোধের মেসেজ একটি HTTP GET হলে তবেই এক্সিকিউট হয়।

কন্ডিশনাল ফ্লো যোগ করতে, API প্রক্সি বিল্ডারে ডেভেলপ করুন ট্যাব বেছে নিন।

প্রক্সি বিল্ডার ডেভেলপ ট্যাব

পছন্দসই এন্ডপয়েন্টে + আইকনে ক্লিক করুন।

শর্তসাপেক্ষ ফ্লো বোতাম যোগ করুন

নতুন কন্ডিশনাল ফ্লো ফর্ম আপনাকে ফ্লোয়ের নাম দিতে এবং একটি কন্ডিশন কনফিগার করতে দেয়। নিচের উদাহরণে, আপনি একটি সাধারণ কন্ডিশন যোগ করেছেন যা বেস পাথ এর পরে যেকোনও URI-তে GET ভার্বের (PUT, POST ইত্যাদির বিপরীতে) জন্য অনুরোধ মেসেজের HTTP মূল্যায়ন করে।

নতুন কন্ডিশনাল ফ্লো প্যানেলে, ফ্লোটির নাম Flow-1 এবং কন্ডিশনের ধরন,
    পাথ ও ভার্ব কনফিগার করা হয়েছে।

(ফ্লো ভেরিয়েবল এবং কন্ডিশনে কীভাবে কন্ডিশনাল স্টেটমেন্ট তৈরি করতে হয় তা জানুন।)

Flow-1 নামের নতুন ফ্লোটি এখন নেভিগেটর মেনুতে দেখা যাবে।

Flow-1 হাইলাইট করা হয়েছে

এখন ProxyEndpoint-এর জন্য XML কনফিগারেশন লক্ষ্য করুন। নেভিগেটর মেনু থেকে 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>

পরবর্তী ধাপ

নিম্নলিখিত বিষয়গুলি শর্ত তৈরি করা এবং ভেরিয়েবল ব্যবহার করা সম্পর্কে আরও বিবরণ প্রদান করে: