অনুরোধ এবং প্রতিক্রিয়া ভেরিয়েবল

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

যখন আপনি একটি API প্রক্সিতে একটি অনুরোধ করেন, আপনি API প্রক্সি কনফিগার করার উপায়ের উপর নির্ভর করে নিম্নলিখিত যেকোন বা সমস্ত তথ্য পাস করতে পারেন:

  • শিরোনাম অনুরোধ করুন
  • প্রশ্ন প্যারাম
  • ফর্ম ডেটা
  • XML বা JSON পেলোড
  • রিসোর্স ইউআরআই

ডিফল্টরূপে, একটি অনুরোধের সমস্ত ডেটা প্রক্সিএন্ডপয়েন্ট থেকে টার্গেটএন্ডপয়েন্টে অপরিবর্তিত পাস করা হয়। তাই, যখন TargetEndpoint ব্যাকএন্ড সার্ভারের কাছে অনুরোধ করে, তখন মূল অনুরোধের সমস্ত তথ্য ব্যাকএন্ড পরিষেবাতে পাঠানো হয়।

ব্যাকএন্ড পরিষেবা থেকে এজ দ্বারা প্রাপ্ত প্রতিক্রিয়ার ক্ষেত্রেও এটি সত্য। ডিফল্টরূপে, প্রতিক্রিয়ায় প্রাপ্ত সমস্ত ডেটা অপরিবর্তিত অ্যাপে প্রেরণ করা হয় যেটি অনুরোধটি শুরু করেছে।

কিভাবে অনুরোধ ডেটা ব্যাকএন্ড সার্ভারে পাস করা হয়?

নিম্নলিখিত চিত্রটি একটি API প্রক্সি সংজ্ঞা দেখায়:

HTTP পরিষেবাতে পৌঁছানোর জন্য প্রক্সি এন্ডপয়েন্টের মধ্য দিয়ে ব্যাকএন্ডের টার্গেট এন্ডপয়েন্ট থেকে HTTP ক্লায়েন্টের অনুরোধ। প্রক্সি এন্ডপয়েন্ট এবং টার্গেট এন্ডপয়েন্টের উদাহরণ প্রদান করা হয়েছে।

এই API প্রক্সির জন্য:

  • API প্রক্সি ভার্চুয়াল হোস্ট: "ডিফল্ট"
  • ভার্চুয়াল হোস্ট দ্বারা সংজ্ঞায়িত ডোমেন: "http://myOrg-prod.apigee.net"
  • প্রক্সি বেস পাথ: "/v1/ওয়েদার"
  • টার্গেটএন্ডপয়েন্ট রুট নিয়ম দ্বারা নির্দিষ্ট করা হয়েছে: "ডিফল্ট"
  • লক্ষ্য URL: "http://weather.yahooapis.com"

একটি ক্লায়েন্ট অ্যাপ নিম্নলিখিত curl কমান্ড ব্যবহার করে API প্রক্সিতে একটি GET অনুরোধ করে:

curl -X GET http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

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

{request.verb} {proxy.basepath}/{proxy.pathsuffix}?{request.querystring}

প্রবাহ ভেরিয়েবলগুলি নিম্নলিখিত মানগুলির সাথে সেট করা হয়েছে:

  • request.verb : "GET"
  • proxy.basepath : "/v1/weather"
  • proxy.pathsuffix : "forecastrss"
  • request.querystring : "w=12797282"

TargetEndpoint তারপর অনুরোধ থেকে তথ্য ব্যবহার করে ব্যাকএন্ড পরিষেবার কাছে একটি অনুরোধ করে:

{request.verb} {target.basepath}/{proxy.pathsuffix}?{request.querystring}

লক্ষ্য করুন কিভাবে রিকোয়েস্টে উল্লিখিত রিসোর্স এবং ক্যোয়ারী প্যারামগুলি ব্যাকএন্ড সার্ভারের অনুরোধে স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হয়। টার্গেটএন্ডপয়েন্টের সংজ্ঞা থেকে, অনুরোধটির ফর্মটি রয়েছে:

curl -X GET http://weather.yahooapis.com/forecastrss?w=12797282

ক্যোয়ারী প্যারামের মতো, যে কোনো হেডার বা ফর্ম প্যারাম যা আপনি API প্রক্সির অনুরোধে অন্তর্ভুক্ত করেন তা ব্যাকএন্ড সার্ভারে পাঠানো হয়। উদাহরণস্বরূপ, আপনি নীচের অনুরোধটি করেন যাতে একটি শিরোনাম রয়েছে:

curl -X GET -H 'Content-type:application/xml' http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

অথবা একটি শিরোনাম এবং ফর্ম ডেটা অন্তর্ভুক্ত করার জন্য নীচের ফর্মে একটি অনুরোধ:

curl -X POST -H "Content-type:application/json" -d \
  '{"email" : "janetutorialxml@example.com",
    "firstName" : "Jane",
    "lastName" : "Tutorial",
    "userName" : "jtutorialxml"
  }' \
  http://myOrg-prod.apigee.net/v1/register/user

উভয় উদাহরণেই, হেডার এবং ফর্ম ডেটা অপরিবর্তিত ব্যাকএন্ড পরিষেবাতে পাস করা হয়। শিরোনামগুলি ফ্লো ভেরিয়েবল দ্বারা প্রতিনিধিত্ব করা হয় যেমন request.headers.count এবং request.headers.names । ফর্ম ডেটা ফ্লো ভেরিয়েবল দ্বারা প্রতিনিধিত্ব করা হয় যেমন request.formparam.count এবং request.formparam.names

কিভাবে প্রতিক্রিয়া তথ্য ফেরত হয়?

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

একটি API প্রক্সিতে অনুরোধ এবং প্রতিক্রিয়া ডেটা অ্যাক্সেস করুন৷

অনেক সময় আছে যেখানে আপনি ব্যাকএন্ড সার্ভারে পাঠানোর আগে অনুরোধের ডেটা পরিবর্তন করতে চান। যেমন:

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

একই প্রতিক্রিয়া তথ্যের জন্য সত্য. প্রতিক্রিয়া প্রক্রিয়াকরণের অংশ হিসাবে, API প্রক্সি অনুরোধকারী অ্যাপে এটি ফেরত দেওয়ার আগে ডেটা সংশোধন করতে চাইতে পারে।

অ্যাক্সেস অনুরোধ বার্তা

আপনি একটি অনুরোধ বার্তার অংশগুলি অ্যাক্সেস করতে এবং পরিবর্তন করতে নীতিগুলি ব্যবহার করতে পারেন৷ এই অংশগুলি অন্তর্ভুক্ত:

  • হেডার
  • ক্যোয়ারী প্যারামিটার
  • ফর্ম পরামিতি
  • উৎস আইপি ঠিকানা
  • HTTP বার্তার মূল অংশ

একটি স্বাভাবিক প্রবাহে, একবার অনুরোধটি প্রক্রিয়া করা হলে, প্রক্সি তখন রূপান্তরিত অনুরোধটি লক্ষ্যে পাঠায়।

নীতিগুলি অনুরোধ ভেরিয়েবলগুলি পরীক্ষা করতে পারে, তারপর সেই ভেরিয়েবলগুলির বিষয়বস্তুর উপর ভিত্তি করে অনুরোধটিকে রূপান্তর বা প্রত্যাখ্যান করতে পারে। নীতিগুলি উপযুক্ত ভেরিয়েবল সেট করে অনুরোধকে রূপান্তরিত করে, উদাহরণস্বরূপ অনুরোধ শিরোনামের সাথে সম্পর্কিত ভেরিয়েবল।

প্রতিক্রিয়া বার্তা অ্যাক্সেস করুন

প্রতিক্রিয়া বার্তায় প্রযোজ্য ভেরিয়েবলগুলি ব্যবহার করে, নীতিগুলি শিরোনাম, ক্যোয়ারী প্যারামিটার এবং ফর্ম প্যারামিটার, উত্স আইপি ঠিকানা, HTTP বার্তা বডি ইত্যাদি সহ বার্তা উপাদানগুলি অ্যাক্সেস করতে পারে৷

প্রক্সি একটি প্রতিক্রিয়া বার্তা পায়, তারপরে প্রতিক্রিয়ার উপর মূল্যায়ন করা শর্তের উপর ভিত্তি করে নীতিগুলির একটি সিরিজ প্রয়োগ করে, যা প্রতিক্রিয়াটিকে পরিবর্তন বা রূপান্তর করতে পারে।

নীতিগুলি প্রতিক্রিয়া ভেরিয়েবলগুলি পরীক্ষা করতে পারে, তারপর সেই ভেরিয়েবলগুলির বিষয়বস্তুর উপর ভিত্তি করে অনুরোধটিকে রূপান্তর বা প্রত্যাখ্যান করতে পারে। নীতিগুলি উপযুক্ত ভেরিয়েবল সেট করে প্রতিক্রিয়াকে রূপান্তরিত করে, উদাহরণস্বরূপ প্রতিক্রিয়া শিরোনামের সাথে সম্পর্কিত ভেরিয়েবল।

ফ্লো ভেরিয়েবল অ্যাক্সেস করার জন্য সাধারণ নীতি

এজ বেশ কয়েকটি নীতি সংজ্ঞায়িত করে যা আপনি অনুরোধ এবং প্রতিক্রিয়া ডেটা প্রক্রিয়া করতে ব্যবহার করতে পারেন। এই নীতিগুলির মধ্যে রয়েছে:

  • AssignMessage নীতি : একটি API প্রক্সি ফ্লো চলাকালীন HTTP অনুরোধ বা প্রতিক্রিয়া বার্তা তৈরি বা সংশোধন করে। এছাড়াও নতুন প্রবাহ ভেরিয়েবল তৈরি করে এবং পপুলেট করে।
  • ExtractVariables পলিসি : কন্ডিশন স্টেটমেন্টে ব্যবহারের জন্য হেডার, URI পাথ, পেলোড এবং ক্যোয়ারী প্যারামিটার সহ বার্তাগুলি থেকে বিষয়বস্তু বের করুন। নীতিটি তারপর বার্তা সামগ্রীতে একটি পাঠ্য প্যাটার্ন প্রয়োগ করে এবং একটি মিল খুঁজে পাওয়ার পরে একটি মনোনীত পরিবর্তনশীল সেট করে।
  • JSONtoXML নীতি এবং XMLtoJSON নীতি : JavaScript অবজেক্ট নোটেশন (JSON) থেকে বার্তাগুলিকে এক্সটেনসিবল মার্কআপ ল্যাঙ্গুয়েজ (XML) ফর্ম্যাটে রূপান্তর করে, বা এর বিপরীতে৷
  • JavaCallout নীতি , JavaScript নীতি , PythonScript নীতি , RegularExpressionProtection নীতি : এই নীতিগুলি আপনাকে অনুরোধ এবং প্রতিক্রিয়া ডেটা সহ ফ্লো ভেরিয়েবল অ্যাক্সেস করতে একটি স্ক্রিপ্ট লিখতে দেয়৷