প্রবাহ ভেরিয়েবল ব্যবহার করে

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

ধারণাগতভাবে, ফ্লো ভেরিয়েবল হল এমন বস্তু যা আপনি আপনার নীতি বা ইউটিলিটি (যেমন ট্রেস টুল টুল) থেকে অ্যাক্সেস করতে পারেন। তারা আপনাকে Apigee Edge দ্বারা প্রক্রিয়াকৃত একটি API লেনদেনের সাথে সম্পর্কিত অবস্থা বজায় রাখার অনুমতি দেয়।

প্রবাহ ভেরিয়েবল কি?

ফ্লো ভেরিয়েবলগুলি একটি API প্রক্সি প্রবাহের প্রেক্ষাপটে বিদ্যমান, এবং তারা একটি API লেনদেনে অবস্থাকে ট্র্যাক করে যেভাবে একটি সফ্টওয়্যার প্রোগ্রামে ভেরিয়েবল ট্র্যাক স্টেট নামে পরিচিত৷ ফ্লো ভেরিয়েবল তথ্য সঞ্চয় করে যেমন:

  • অনুরোধকারী অ্যাপ থেকে পাঠানো আইপি ঠিকানা, হেডার, URL পাথ এবং পেলোড
  • সিস্টেম তথ্য যেমন তারিখ এবং সময় যখন এজ একটি অনুরোধ পায়
  • একটি নীতি কার্যকর করার সময় ডেটা প্রাপ্ত। উদাহরণস্বরূপ, একটি OAuth টোকেন যাচাই করে এমন একটি নীতি কার্যকর করার পরে, এজ ফ্লো ভেরিয়েবল তৈরি করে যা অনুরোধকারী অ্যাপ্লিকেশনের নামের মতো তথ্য ধারণ করে।
  • লক্ষ্য সিস্টেম থেকে প্রতিক্রিয়া সম্পর্কে তথ্য

কিছু ভেরিয়েবল এজ-এ "বিল্ট-ইন" থাকে এবং যখনই একটি API অনুরোধ গৃহীত হয় তখনই স্বয়ংক্রিয়ভাবে জনবহুল হয়। এগুলি একটি API লেনদেন জুড়ে উপলব্ধ। আপনি AssignMessage পলিসি বা JavaScript, Node.js এবং Java কোডের মতো নীতিগুলি ব্যবহার করে আপনার নিজস্ব কাস্টম ভেরিয়েবল তৈরি করতে পারেন৷

যেমন আপনি দেখতে পাবেন, ভেরিয়েবলের সুযোগ রয়েছে এবং সেগুলি কোথায় অ্যাক্সেসযোগ্য তা নির্ভর করে এপিআই প্রক্সি ফ্লোতে কখন তৈরি হয় তার উপর। সাধারণভাবে, যখন একটি ভেরিয়েবল তৈরি করা হয়, তখন এটি সমস্ত নীতি এবং কোডের জন্য উপলব্ধ থাকে যা পরবর্তীতে API লেনদেন প্রবাহে কার্যকর হয়।

কিভাবে প্রবাহ ভেরিয়েবল ব্যবহার করা হয়?

ফ্লো ভেরিয়েবল পলিসি এবং শর্তসাপেক্ষ প্রবাহে ব্যবহৃত হয়:

  • নীতিগুলি ফ্লো ভেরিয়েবল থেকে রাষ্ট্র পুনরুদ্ধার করতে পারে এবং তাদের কাজ করতে ব্যবহার করতে পারে।

    উদাহরণস্বরূপ, একটি VerifyJWT নীতি একটি ফ্লো ভেরিয়েবল থেকে যাচাই করার জন্য টোকেনটি পুনরুদ্ধার করতে পারে এবং তারপরে এটিতে যাচাইকরণ করতে পারে। আরেকটি উদাহরণ হিসাবে, একটি জাভাস্ক্রিপ্ট নীতি ফ্লো ভেরিয়েবল পুনরুদ্ধার করতে পারে এবং সেই ভেরিয়েবলের মধ্যে থাকা ডেটা এনকোড করতে পারে।

  • শর্তসাপেক্ষ ফ্লো এজ এর মাধ্যমে একটি API এর প্রবাহকে নির্দেশ করতে ফ্লো ভেরিয়েবলকে উল্লেখ করতে পারে, যেমন একটি সুইচ স্টেটমেন্ট প্রোগ্রামিংয়ে কাজ করে।

    উদাহরণস্বরূপ, একটি ফল্ট ফেরত দেওয়ার নীতি শুধুমাত্র তখনই কার্যকর হতে পারে যখন একটি নির্দিষ্ট প্রবাহ পরিবর্তনশীল সেট করা হয়। অবশেষে, আপনি একটি Node.js টার্গেট অ্যাপ্লিকেশনে ফ্লো ভেরিয়েবল পেতে এবং সেট করতে পারেন।

আসুন এই প্রতিটি প্রসঙ্গে কীভাবে ভেরিয়েবল ব্যবহার করা হয় তার উদাহরণ দেখি।

পলিসিতে ফ্লো ভেরিয়েবল

কিছু নীতি ইনপুট হিসাবে ফ্লো ভেরিয়েবল গ্রহণ করে।

উদাহরণস্বরূপ, নিম্নলিখিত AssignMessage নীতিটি ফ্লো ভেরিয়েবল client.ip এর মান নেয় এবং এটিকে My-Client-IP নামে একটি অনুরোধ শিরোনামে রাখে। অনুরোধের প্রবাহে যোগ করা হলে, এই নীতি একটি শিরোনাম সেট করে যা ব্যাকএন্ড লক্ষ্যে পাস করা হয়। প্রতিক্রিয়া প্রবাহে সেট করা থাকলে, শিরোনামটি ক্লায়েন্ট অ্যাপে ফেরত পাঠানো হয়।

<AssignMessage name="set-ip-in-header">
    <AssignTo createNew="false" transport="http" type="request">request</AssignTo>
    <Set>
        <Headers>
            <Header name="My-Client-IP">{client.ip}</Header>
        </Headers>
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</AssignMessage>

অন্য একটি উদাহরণের জন্য, যখন একটি কোটা নীতি কার্যকর হয়, তখন বেশ কিছু ফ্লো ভেরিয়েবল পলিসি-সম্পর্কিত মান দিয়ে তৈরি হয়। এই ভেরিয়েবলগুলির মধ্যে একটিকে বলা হয় ratelimit.my-quota-policy.used.count (যেখানে my-quota-policy হল আপনার আগ্রহের কোটা নীতির নাম)।

আপনি পরে একটি শর্তসাপেক্ষ প্রবাহ চালাতে পারেন যা বলে "যদি বর্তমান কোটার সংখ্যা সর্বাধিকের 50% এর নিচে হয় এবং এটি সকাল 9 টা থেকে বিকাল 5 টার মধ্যে হয় তবে একটি ভিন্ন কোটা প্রয়োগ করুন।" এই শর্তটি বর্তমান কোটা গণনার মান এবং system.time নামক একটি ফ্লো ভেরিয়েবলের উপর নির্ভর করতে পারে, যা বিল্ট-ইন এজ ভেরিয়েবলগুলির মধ্যে একটি।

শর্তসাপেক্ষ প্রবাহে ফ্লো ভেরিয়েবল

শর্তসাপেক্ষ প্রবাহ ফ্লো ভেরিয়েবলের মূল্যায়ন করে এবং প্রক্সিগুলিকে গতিশীলভাবে আচরণ করতে সক্ষম করে। শর্তগুলি সাধারণত প্রবাহ, পদক্ষেপ এবং রুট নিয়মের আচরণ পরিবর্তন করতে ব্যবহৃত হয়।

এখানে একটি শর্তসাপেক্ষ প্রবাহ রয়েছে যা একটি প্রক্সি ফ্লো ধাপে পরিবর্তনশীল request.verb এর মান মূল্যায়ন করে। এই ক্ষেত্রে, অনুরোধ ক্রিয়াটি POST হলে, VerifyAPIKey নীতিটি কার্যকর করা হয়। এটি API প্রক্সি কনফিগারেশনে ব্যবহৃত একটি সাধারণ প্যাটার্ন।

<PreFlow name="PreFlow">
    <Request>
        <Step>
            <Condition>request.verb equals "POST"</Condition>
            <Name>VerifyApiKey</Name>
        </Step>
    </Request>
</PreFlow>

এখন, আপনি ভাবতে পারেন, request.verb , client.ip , এবং system.time মত ভেরিয়েবল কোথা থেকে আসে? যখন তারা তাত্ক্ষণিক এবং একটি মান দিয়ে জনবহুল হয়? কখন ভেরিয়েবল তৈরি করা হয় এবং কখন সেগুলি আপনার কাছে উপলব্ধ তা বুঝতে আপনাকে সাহায্য করতে, ফ্লো ভেরিয়েবল স্কোপ বোঝার জন্য দেখুন।

জাভাস্ক্রিপ্ট নীতির সাথে ডাকা জাভাস্ক্রিপ্ট কোডে ফ্লো ভেরিয়েবল

JavaScript নীতির সাথে, আপনি একটি API প্রক্সি প্রবাহের প্রেক্ষাপটের মধ্যে থেকে JavaScript কোড চালাতে পারেন। এই নীতি দ্বারা কার্যকর করা JavaScript Apigee JavaScript অবজেক্ট মডেল ব্যবহার করে, যা আপনার কোড এক্সিকিউট হচ্ছে এমন API প্রক্সি প্রবাহের সাথে সম্পর্কিত অনুরোধ, প্রতিক্রিয়া এবং প্রসঙ্গ অবজেক্টে আপনার কাস্টম কোড অ্যাক্সেস প্রদান করে। উদাহরণস্বরূপ, এই কোডটি ফ্লো ভেরিয়েবল target.name থেকে প্রাপ্ত মান সহ একটি প্রতিক্রিয়া শিরোনাম সেট করে।

context.setVariable("response.header.X-Apigee-Target", context.getVariable("target.name"));

ভেরিয়েবল পড়তে এবং সেট করতে JavaScript ব্যবহার করার এই কৌশলটি আপনি AssignMessage নীতির সাথে করতে পারেন এমন কাজের অনুরূপ (আগে দেখানো হয়েছে)। এটি এজ এ একই ধরণের জিনিসগুলি সম্পাদন করার আরেকটি উপায়। মনে রাখার মূল বিষয় হল জাভাস্ক্রিপ্ট নীতি দ্বারা নির্বাহিত জাভাস্ক্রিপ্টের সমস্ত ফ্লো ভেরিয়েবলের অ্যাক্সেস রয়েছে যা বিদ্যমান এবং API প্রক্সি প্রবাহের মধ্যে রয়েছে।

Node.js কোডে ফ্লো ভেরিয়েবল

apigee-access মডিউল প্রয়োজন করে, আপনি এজ-এ স্থাপন করা Node.js কোডের মধ্যে থেকে ফ্লো ভেরিয়েবল সেট এবং অ্যাক্সেস করতে পারেন।

এখানে একটি সাধারণ উদাহরণ যেখানে custom.foo নামক একটি ভেরিয়েবল মান Bar সেট করা হয়েছে। একবার সেট হয়ে গেলে, এই নতুন ভেরিয়েবলটি Node.js কোড কার্যকর হওয়ার পর প্রক্সি ফ্লোতে যে কোনো নীতি বা অন্য কোডের জন্য উপলব্ধ হয়ে যায়।

var http = require('http');
var apigee = require('apigee-access');

http.createServer(function (request, response) {
  apigee.setVariable(request, "custom.foo", "Bar");
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World\n');
}).listen(8124);

console.log('Server running at http://127.0.0.1:8124/');

আপনি Node.js-এ অ্যাক্সেসিং ফ্লো ভেরিয়েবলে ভেরিয়েবলের সাথে কাজ করতে apigee-access ব্যবহার করার বিষয়ে আরও পড়তে পারেন।

প্রবাহ পরিবর্তনশীল সুযোগ বোঝা

পরিবর্তনশীল সুযোগ একটি API প্রক্সি কলের প্রবাহ বা সামগ্রিক "জীবনচক্র" এর সাথে সম্পর্কিত।

একটি API প্রক্সির প্রবাহ কল্পনা করা হচ্ছে

প্রবাহ পরিবর্তনশীল সুযোগ বোঝার জন্য, একটি API প্রক্সির মাধ্যমে বার্তাগুলি কীভাবে প্রবাহিত হয় তা বোঝা বা কল্পনা করা গুরুত্বপূর্ণ। একটি API প্রক্সি একটি প্রবাহ হিসাবে সংগঠিত বার্তা প্রক্রিয়াকরণ পদক্ষেপগুলির একটি সিরিজ নিয়ে গঠিত। একটি প্রক্সি প্রবাহের প্রতিটি ধাপে, প্রক্সি এটির কাছে উপলব্ধ তথ্য মূল্যায়ন করে এবং পরবর্তীতে কী করতে হবে তা স্থির করে৷ পথ বরাবর, প্রক্সি নীতি কোড নির্বাহ করতে পারে বা শর্তসাপেক্ষ শাখা সম্পাদন করতে পারে।

নিচের চিত্রটি প্রবাহের এই ক্রমটি চিত্রিত করে। লক্ষ্য করুন কিভাবে প্রবাহগুলি চারটি প্রধান অংশের সমন্বয়ে গঠিত: ProxyEndpoint অনুরোধ , TargetEndpoint অনুরোধ , TargetEndpoint প্রতিক্রিয়া , এবং ProxyEndpoint প্রতিক্রিয়া

এই প্রবাহের কাঠামোটি মাথায় রাখুন যখন আমরা এই বিষয়ের বাকি অংশে ফ্লো ভেরিয়েবলগুলি অন্বেষণ করতে শুরু করি।

কিভাবে পরিবর্তনশীল সুযোগ প্রক্সি প্রবাহের সাথে সম্পর্কিত

যত তাড়াতাড়ি আপনি একটি প্রক্সির মাধ্যমে বার্তাগুলি কীভাবে প্রবাহিত হয় তা কল্পনা করতে পারেন, যেমনটি পূর্বে বর্ণিত হয়েছে, আপনি পরিবর্তনশীল সুযোগ বুঝতে শুরু করতে পারেন। স্কোপ দ্বারা, আমরা প্রক্সি ফ্লো লাইফ সাইকেলের বিন্দুকে বুঝিয়ে যখন একটি পরিবর্তনশীল প্রথম ইনস্ট্যান্টিয়েট করা হয়।

উদাহরণ স্বরূপ, আপনার যদি প্রক্সিএন্ডপয়েন্ট রিকোয়েস্ট সেগমেন্টের সাথে একটি নীতি সংযুক্ত থাকে, তাহলে সেই নীতিটি TargetEndpoint অনুরোধ সেগমেন্টে স্কোপ করা কোনো ভেরিয়েবল অ্যাক্সেস করতে পারবে না। এর কারণ হল যে প্রবাহের TargetEndpoint অনুরোধ সেগমেন্ট এখনও কার্যকর হয়নি, তাই API প্রক্সি সেই সুযোগে ভেরিয়েবলগুলিকে পপুলেট করার সুযোগ পায়নি।

নিম্নলিখিত সারণীটি পরিবর্তনশীল স্কোপের সম্পূর্ণ সেট তালিকাভুক্ত করে এবং প্রক্সি ফ্লোতে কখন উপলব্ধ হবে তা নির্দেশ করে।

পরিবর্তনশীল সুযোগ যেখানে এই ভেরিয়েবলগুলি জনবহুল
প্রক্সি অনুরোধ ProxyEndpoint অনুরোধ সেগমেন্ট
লক্ষ্য অনুরোধ TargetEndpoint অনুরোধ সেগমেন্ট
লক্ষ্য প্রতিক্রিয়া TargetEndpoint প্রতিক্রিয়া সেগমেন্ট
প্রক্সি প্রতিক্রিয়া ProxyEndpoint প্রতিক্রিয়া সেগমেন্ট
সবসময় পাওয়া যায় প্রক্সি রিকোয়েস্ট পাওয়ার সাথে সাথে। এই ভেরিয়েবলগুলি সমগ্র প্রক্সি ফ্লো জীবন চক্রের মাধ্যমে উপলব্ধ।

উদাহরণস্বরূপ, একটি বিল্ট-ইন এজ ভেরিয়েবল আছে যাকে client.ip বলা হয়। এই ভেরিয়েবলের "প্রক্সি অনুরোধ" সুযোগ রয়েছে। এটি স্বয়ংক্রিয়ভাবে ক্লায়েন্টের আইপি ঠিকানার সাথে প্রক্সি বলা হয়। যখন একটি অনুরোধ প্রথমে প্রক্সিএন্ডপয়েন্টে আঘাত করে এবং সমগ্র প্রক্সি ফ্লো লাইফ সাইকেলে উপলব্ধ থাকে তখন এটি পপুলেট হয়।

target.url নামে আরেকটি বিল্ট-ইন ভেরিয়েবল আছে। এই ভেরিয়েবলের সুযোগ হল "টার্গেট রিকোয়েস্ট"। ব্যাক-এন্ড টার্গেটে পাঠানো রিকোয়েস্ট ইউআরএল সহ এটি TargetEndpoint রিকোয়েস্ট সেগমেন্টে পপুলেট করা হয়। আপনি যদি ProxyEndpoint অনুরোধ বিভাগে target.url অ্যাক্সেস করার চেষ্টা করেন, তাহলে আপনি একটি NULL মান পাবেন। আপনি যদি এই ভেরিয়েবলটি স্কোপের আগে সেট করার চেষ্টা করেন, তাহলে প্রক্সি কিছুই করে না - একটি ত্রুটি তৈরি করে না এবং ভেরিয়েবল সেট করে না।

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

<AssignMessage name="CopyRequestToResponse">
    <AssignTo type="response" createNew="false">response</AssignTo>
    <Copy source="request"/>
</AssignMessage>

এই নীতিটি কেবল request বস্তুটিকে অনুলিপি করে এবং এটিকে response বস্তুতে বরাদ্দ করে। কিন্তু প্রক্সি ফ্লোতে এই নীতিটি কোথায় রাখা উচিত? উত্তরটি হল এটি অবশ্যই টার্গেটএন্ডপয়েন্ট প্রতিক্রিয়াতে স্থাপন করা উচিত, কারণ প্রতিক্রিয়া ভেরিয়েবলের সুযোগ হল "লক্ষ্য প্রতিক্রিয়া।"

প্রবাহ ভেরিয়েবল উল্লেখ করা

Apigee Edge-এ সমস্ত অন্তর্নির্মিত ভেরিয়েবল একটি ডট-নোটেশন নামকরণের নিয়ম অনুসরণ করে। এই কনভেনশনটি পরিবর্তনশীলটির উদ্দেশ্য নির্ধারণ করা সহজ করে তোলে। যেমন system.time.hour এবং request.content

Apigee প্রাসঙ্গিক ভেরিয়েবল যথাযথভাবে সংগঠিত করার জন্য বিভিন্ন উপসর্গ সংরক্ষণ করে। এই উপসর্গগুলির মধ্যে রয়েছে:

  • request
  • response
  • system
  • target

একটি নীতিতে একটি পরিবর্তনশীল উল্লেখ করতে, এটি কোঁকড়া বন্ধনীতে আবদ্ধ করুন। উদাহরণস্বরূপ, নিম্নলিখিত AssignMessage নীতিটি ভেরিয়েবল client.ip এর মান নেয় এবং এটিকে Client-IP নামক একটি অনুরোধ শিরোনামে রাখে।

<AssignMessage name="set-ip-in-header">
    <AssignTo createNew="false" transport="http" type="request">request</AssignTo>
    <Set>
        <Headers>
            <Header name="Client-IP">{client.ip}</Header>
        </Headers>
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</AssignMessage>

শর্তাধীন প্রবাহে, কোঁকড়া ধনুর্বন্ধনী প্রয়োজনীয় নয়। নিম্নলিখিত উদাহরণ শর্ত পরিবর্তনশীল request.header.accept মূল্যায়ন করে:

<Step>
    <Condition>request.header.accept = "application/json"</Condition>
    <Name>XMLToJSON</Name>
</Step>

এছাড়াও আপনি JavaScript এবং Java কোডে ফ্লো ভেরিয়েবল উল্লেখ করতে পারেন। আরও তথ্যের জন্য, দেখুন:

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

একটি ফ্লো ভেরিয়েবলের প্রতিটি বৈশিষ্ট্যের একটি সু-সংজ্ঞায়িত ডেটা টাইপ থাকে, যেমন স্ট্রিং, লং, ইন্টিজার, বুলিয়ান বা সংগ্রহ। আপনি ফ্লো ভেরিয়েবল রেফারেন্সে তালিকাভুক্ত ডেটা প্রকারগুলি খুঁজে পেতে পারেন। একটি নীতি দ্বারা তৈরি করা ভেরিয়েবলগুলির জন্য, ডেটা প্রকারের তথ্যের জন্য নির্দিষ্ট নীতির রেফারেন্স বিষয় পড়ুন৷

আপনি ম্যানুয়ালি তৈরি করা ভেরিয়েবলগুলি তৈরি করার সময় প্রদত্ত ধরন অনুমান করে এবং অনুমোদিত মানগুলির প্রকারের উপর নির্ভর করে। উদাহরণস্বরূপ, Node.js কোডে তৈরি ভেরিয়েবল সংখ্যা, স্ট্রিং, বুলিয়ান, নাল বা অনির্ধারিত সীমাবদ্ধ।

পলিসিতে ফ্লো ভেরিয়েবল ব্যবহার করা

অনেক নীতি তাদের স্বাভাবিক সম্পাদনের অংশ হিসাবে ফ্লো ভেরিয়েবল তৈরি করে। পলিসি রেফারেন্স এই সমস্ত নীতি-নির্দিষ্ট ভেরিয়েবল নথিভুক্ত করে।

আপনি প্রক্সি এবং নীতিগুলির সাথে কাজ করার সময়, কোন ভেরিয়েবলগুলি তৈরি করা হয়েছে এবং সেগুলি কীসের জন্য ব্যবহৃত হয় তা খুঁজে বের করতে নীতির রেফারেন্সের সাথে পরামর্শ করতে ভুলবেন না। উদাহরণস্বরূপ, কোটা নীতি ভেরিয়েবলের একটি সেট তৈরি করে যাতে কোটার সংখ্যা এবং সীমা, মেয়াদ শেষ হওয়ার সময় এবং আরও অনেক কিছু সম্পর্কে তথ্য থাকে।

কিছু পলিসি ভেরিয়েবল ডিবাগ করার জন্য উপযোগী। আপনি ট্রেস টুল টুল ব্যবহার করতে পারেন, উদাহরণস্বরূপ, প্রক্সি ফ্লোতে একটি নির্দিষ্ট সময়ে কোন ভেরিয়েবল সেট করা হয়েছে তা দেখতে।

ExtractVariables নীতি আপনাকে বার্তা থেকে নিষ্কাশিত ডেটা সহ কাস্টম ভেরিয়েবলগুলি তৈরি করতে দেয়। আপনি ক্যোয়ারী প্যারামিটার, হেডার এবং অন্যান্য ডেটা বের করতে পারেন। উদাহরণস্বরূপ, আপনি বার্তাগুলি থেকে নির্দিষ্ট ডেটা বের করতে প্যাটার্ন ব্যবহার করে অনুরোধ এবং প্রতিক্রিয়া বার্তাগুলিকে পার্স করতে পারেন৷

নিম্নলিখিত উদাহরণে, Extract ভেরিয়েবল একটি প্রতিক্রিয়া বার্তা পার্স করে এবং প্রতিক্রিয়া থেকে নেওয়া নির্দিষ্ট ডেটা সঞ্চয় করে। নীতি দুটি কাস্টম ভেরিয়েবল তৈরি করে, geocoderesponse.latitude এবং geocoderesponse.longitude , এবং তাদের জন্য মান নির্ধারণ করে।

<ExtractVariables name="ParseGeocodingResponse">
  <Source>response</Source>
  <VariablePrefix>geocoderesponse</VariablePrefix>
  <JSONPayload>
    <Variable name="latitude">
      <JSONPath>$.results[0].geometry.location.lat</JSONPath>
    </Variable>
    <Variable name="longitude">
      <JSONPath>$.results[0].geometry.location.lng</JSONPath>
    </Variable>
  </JSONPayload>
</ExtractVariables>

আবার, সচেতন থাকুন যে অনেক নীতি স্বয়ংক্রিয়ভাবে ভেরিয়েবল তৈরি করে। আপনি প্রক্সি ফ্লো প্রসঙ্গের মধ্যে সেই ভেরিয়েবলগুলি অ্যাক্সেস করতে পারেন এবং সেগুলি প্রতিটি পৃথক নীতি বিষয়ের অধীনে নীতি রেফারেন্সে নথিভুক্ত করা হয়।

জাভাস্ক্রিপ্ট কোডে ফ্লো ভেরিয়েবলের সাথে কাজ করা

আপনি সরাসরি JavaScript কোডে ভেরিয়েবল অ্যাক্সেস করতে এবং সেট করতে পারেন যা একটি API প্রক্সির প্রেক্ষাপটে কার্যকর হচ্ছে। Apigee JavaScript অবজেক্ট মডেলের মাধ্যমে, জাভাস্ক্রিপ্ট এজ এ এক্সিকিউটিং প্রক্সি ফ্লো ভেরিয়েবলে সরাসরি অ্যাক্সেস আছে।

জাভাস্ক্রিপ্ট কোডে ভেরিয়েবল অ্যাক্সেস করতে, এই বস্তুর যেকোনো একটিতে গেটার/সেটার পদ্ধতিতে কল করুন:

  • context
  • proxyRequest
  • proxyResponse
  • targetRequest
  • targetResponse

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

context বস্তুটি "সার্বিকভাবে" উপলব্ধ ভেরিয়েবলের সাথে মিলে যায়, যেমন সিস্টেম ভেরিয়েবল। উদাহরণস্বরূপ, আপনি বর্তমান বছর পেতে context বস্তুতে getVariable() কল করতে পারেন:

var year = context.getVariable('system.time.year');

একইভাবে, আপনি একটি কাস্টম ভেরিয়েবলের মান সেট করার জন্য setVariable() কল করতে পারেন অথবা যেকোন লিখনযোগ্য আউট -অফ-দ্য-বক্স ভেরিয়েবলের জন্য। এখানে, আমরা organization.name.myorg নামে একটি কাস্টম ভেরিয়েবল তৈরি করি এবং এটিতে একটি মান নির্ধারণ করি।

var org = context.setVariable('organization.name.myorg', value);

যেহেতু এই ভেরিয়েবলটি context অবজেক্টের সাথে তৈরি করা হয়েছে, এটি সমস্ত ফ্লো সেগমেন্টের জন্য উপলব্ধ হবে (মূলত, এটি একটি গ্লোবাল ভেরিয়েবল তৈরি করার মতো)।

এছাড়াও আপনি জাভা কোডে প্রক্সি ফ্লো ভেরিয়েবল পেতে/সেট করতে পারেন যা আপনি JavaCallout নীতির সাথে চালান।

Node.js অ্যাপ্লিকেশনে ফ্লো ভেরিয়েবল অ্যাক্সেস করা

আপনি প্রান্তে স্থাপন করা Node.js কোড থেকে ফ্লো ভেরিয়েবল পেতে, সেট করতে এবং মুছতে পারেন। আপনাকে যা করতে হবে তা হল আপনার কোডে অ্যাপিজি-অ্যাক্সেস মডিউলটি "প্রয়োজন"। বিস্তারিত জানার জন্য, Node.js এ ফ্লো ভেরিয়েবল অ্যাক্সেস করা দেখুন।

আপনার যা মনে রাখা দরকার

প্রবাহ ভেরিয়েবল সম্পর্কে মনে রাখার জন্য এখানে কয়েকটি গুরুত্বপূর্ণ বিষয় রয়েছে:

  • কিছু "আউট-অফ-দ্য-বক্স" ভেরিয়েবল স্বয়ংক্রিয়ভাবে প্রক্সি দ্বারা তাত্ক্ষণিক এবং পপুলেট করা হয়। এগুলি ফ্লো ভেরিয়েবল রেফারেন্সে নথিভুক্ত করা হয়েছে।
  • আপনি প্রক্সি ফ্লোতে ব্যবহারের জন্য উপলব্ধ কাস্টম ভেরিয়েবল তৈরি করতে পারেন। AssignMessage পলিসি এবং JavaScript পলিসি এবং Node.js কোডের মত পলিসি ব্যবহার করে ভেরিয়েবল তৈরি করা সম্ভব।
  • ভেরিয়েবলের সুযোগ আছে। উদাহরণস্বরূপ, কিছু ভেরিয়েবল স্বয়ংক্রিয়ভাবে পপুলেট হয়ে যায় যখন প্রথম প্রক্সি কোনো অ্যাপ থেকে অনুরোধ পায়। অন্যান্য ভেরিয়েবলগুলি প্রক্সির প্রতিক্রিয়া প্রবাহ বিভাগে পপুলেট করা হয়। প্রতিক্রিয়া বিভাগটি কার্যকর না হওয়া পর্যন্ত এই প্রতিক্রিয়া ভেরিয়েবলগুলি অনির্ধারিত থাকে।
  • যখন নীতিগুলি কার্যকর হয়, তখন তারা নীতি-নির্দিষ্ট ভেরিয়েবল তৈরি করতে এবং পপুলেট করতে পারে। প্রতিটি নীতির ডকুমেন্টেশন এই সমস্ত প্রাসঙ্গিক নীতি-নির্দিষ্ট ভেরিয়েবলের তালিকা করে।
  • শর্তাধীন প্রবাহ সাধারণত এক বা একাধিক ভেরিয়েবলের মূল্যায়ন করে। আপনি যদি শর্তসাপেক্ষ প্রবাহ তৈরি করতে চান তবে আপনাকে ভেরিয়েবলগুলি বুঝতে হবে।
  • অনেক নীতি ইনপুট বা আউটপুট হিসাবে ভেরিয়েবল ব্যবহার করে। সম্ভবত একটি ভেরিয়েবল যা একটি নীতি দ্বারা তৈরি করা হয় পরে অন্যটি ব্যবহার করে।
  • আপনি সোজা JavaScript (এবং আমাদের JavaScript অবজেক্ট মডেল ) বা JavaCallout নীতি ব্যবহার করে Node.js-এর মধ্যে থেকে অনেকগুলি ফ্লো ভেরিয়েবল পেতে এবং সেট করতে পারেন, যা এজ-এ কোড নির্বাহ করে।

সম্পর্কিত কোড নমুনা

API প্রক্সি নমুনা GitHub এ রয়েছে এবং ডাউনলোড এবং ব্যবহার করা সহজ। নমুনা ডাউনলোড এবং ব্যবহার সম্পর্কে তথ্যের জন্য নমুনা API প্রক্সি ব্যবহার করা দেখুন। API প্রক্সি নমুনা এবং তারা কি করে তার বিবরণের জন্য নমুনা তালিকা দেখুন।

নমুনা প্রক্সি যা ভেরিয়েবল এবং ভেরিয়েবল প্রসেসিং ব্যবহার করে:

  • ভেরিয়েবল - পরিবহন এবং JSON এবং XML বার্তা সামগ্রীর উপর ভিত্তি করে ভেরিয়েবলগুলি কীভাবে নিষ্কাশন এবং সেট করতে হয় তা প্রদর্শন করে৷
  • নীতি-ম্যাশআপ-কুকবুক - একটি সম্পূর্ণ অ্যাপ্লিকেশন যা দুটি পাবলিক API কল করার জন্য নীতি রচনা ব্যবহার করে, ফলাফল একত্রিত করে এবং ক্লায়েন্ট অ্যাপের জন্য একটি সমৃদ্ধ প্রতিক্রিয়া তৈরি করে। এই নমুনা সম্পর্কে আরও তথ্যের জন্য, নীতি রচনা ব্যবহার করা দেখুন।
  • শর্তসাপেক্ষ-নীতি - পরিবর্তনশীল মানের উপর ভিত্তি করে সহজ শর্তাধীন নীতি প্রয়োগ করে।

সম্পর্কিত বিষয়

  • একটি API প্রক্সিতে স্বয়ংক্রিয়ভাবে পপুলেট করা সমস্ত ভেরিয়েবল ফ্লো ভেরিয়েবল রেফারেন্সে তালিকাভুক্ত করা হয়েছে। রেফারেন্স প্রতিটি ভেরিয়েবলের ধরন এবং সুযোগও তালিকাভুক্ত করে।
  • আপনি যদি জানতে চান যে কোন ভেরিয়েবলগুলি একটি নির্দিষ্ট পলিসি পপুলেট করে, তাহলে পলিসির রেফারেন্স টপিকটি পড়ুন। উদাহরণস্বরূপ, কোটা নীতির রেফারেন্সে ফ্লো ভেরিয়েবল দেখুন।