অ্যাসাইন মেসেজ নীতি

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

কি

API প্রক্সি ফ্লো চলাকালীন AssignMessage নীতি পরিবর্তন করে বা নতুন অনুরোধ এবং প্রতিক্রিয়া বার্তা তৈরি করে। নীতি আপনাকে সেই বার্তাগুলিতে নিম্নলিখিত ক্রিয়া সম্পাদন করতে দেয়:

  • একটি বার্তায় নতুন ফর্ম প্যারামিটার, শিরোনাম বা ক্যোয়ারী প্যারামিটার যোগ করুন
  • বিদ্যমান বৈশিষ্ট্যগুলি এক বার্তা থেকে অন্য বার্তায় অনুলিপি করুন
  • একটি বার্তা থেকে হেডার, ক্যোয়ারী প্যারামিটার, ফর্ম প্যারামিটার এবং/অথবা বার্তা পেলোডগুলি সরান
  • একটি বার্তায় বিদ্যমান বৈশিষ্ট্যের মান সেট করুন

AssignMessage নীতির সাহায্যে, আপনি সাধারণত অনুরোধ বা প্রতিক্রিয়ার বৈশিষ্ট্য যোগ করেন, পরিবর্তন করেন বা অপসারণ করেন। যাইহোক, আপনি একটি কাস্টম অনুরোধ বা প্রতিক্রিয়া বার্তা তৈরি করতে এবং এটিকে একটি বিকল্প লক্ষ্যে প্রেরণ করতে AssignMessage নীতি ব্যবহার করতে পারেন, যেমন কাস্টম অনুরোধ বার্তা তৈরি করুন এ বর্ণিত।

এমন অনেক পরিস্থিতিতে রয়েছে যেখানে আপনি Apigee Edge দ্বারা প্রক্রিয়াকরণের সময় একটি অনুরোধ বা প্রতিক্রিয়া বার্তা পরিবর্তন করতে চাইতে পারেন। যেমন:

  • একটি ক্যোয়ারী স্ট্রিং প্যারামিটার বা অন্য ধরনের ইনপুটের জন্য একটি ডিফল্ট মান নির্ধারণ করুন।
  • বার্তাটি ব্যাকএন্ড পরিষেবাতে ফরোয়ার্ড করার আগে একটি অনুরোধ বার্তা থেকে HTTP শিরোনাম ছিনিয়ে নিন।
  • ভোক্তা অ্যাপে প্রতিক্রিয়া পাঠানোর আগে HTTP শিরোনাম যোগ করুন।
  • একটি প্রতিক্রিয়া পাঠানোর আগে JSON বা XML বার্তা সামগ্রী প্রবেশ করান৷
  • সম্পূর্ণ অনুরোধ বা প্রতিক্রিয়া বার্তা তৈরি করুন. উদাহরণস্বরূপ, আপনি একটি API প্রক্সি থেকে একটি দূরবর্তী API আহ্বান করতে একটি ServiceCallout নীতি ব্যবহার করতে পারেন৷ আপনি একটি কাস্টম অনুরোধ বার্তা তৈরি করতে এবং এটি একটি ভেরিয়েবলে বরাদ্দ করতে AssignMessage নীতি ব্যবহার করতে পারেন। তারপরে, দূরবর্তী API তে সেই বার্তাটি পাঠাতে পরিষেবা কলআউট ব্যবহার করুন।
  • ডিবাগিং এবং সমস্যা সমাধানের জন্য অনুরোধ এবং প্রতিক্রিয়াগুলিতে শিরোনাম যুক্ত করুন।

AssignMessage নীতি বার্তা বা ফ্লো ভেরিয়েবল তৈরি বা পরিবর্তন করতে পারে। আপস্ট্রিম সিস্টেমে একটি প্রক্সির মাধ্যমে পাঠানোর আগে অনুরোধ বার্তাগুলিকে সংশোধন করতে বা API গ্রাহক অ্যাপ্লিকেশনগুলিতে রিলে করার আগে প্রতিক্রিয়া বার্তাগুলিকে সংশোধন করতে এই নীতিটি ব্যবহার করুন৷

<AssignMessage> উপাদান

একটি AssignMessage নীতি সংজ্ঞায়িত করে।

ডিফল্ট মান নীচে ডিফল্ট নীতি ট্যাব দেখুন
প্রয়োজন? প্রয়োজন
টাইপ জটিল বস্তু
অভিভাবক উপাদান n/a
শিশু উপাদান <Add>
<AssignTo>
<AssignVariable>
<Copy>
<DisplayName>
<IgnoreUnresolvedVariables>
<Remove>
<Set>

<AssignMessage> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <!-- All AssignMessage child elements are optional -->
  <Add>
    <FormParams>
      <FormParam name="formparam_name">formparam_value</FormParam>
      ...
    </FormParams>
    <Headers>
      <Header name="header_name">header_value</Header>
      ...
    </Headers>
    <QueryParams>
      <QueryParam name="queryparam_name">queryparam_value</QueryParam>
      ...
    </QueryParams>
  </Add>

  <AssignTo createNew="[true|false]" transport="http"
    type="[request|response]">destination_variable_name</AssignTo>

  <AssignVariable>
    <Name>variable_name</Name>
    <Ref>source_variable</Ref>
    <Template>message_template</Template>
    or
    <Template ref='template_variable'></Template>
    <Value>variable_value</Value>
  </AssignVariable>

  <Copy source="[request|response]">
    <!-- Can also be an empty array (<FormParams/>) -->
    <FormParams>
      <FormParam name="formparam_name">formparam_value</FormParam>
      ...
    </FormParams>
    <!-- Can also be an empty array (<Headers/>) -->
    <Headers>
      <Header name="header_name">header_value</Header>
      ...
    </Headers>
    <Path>[false|true]</Path>
    <Payload>[false|true]</Payload>
    <!-- Can also be an empty array (<QueryParams/>) -->
    <QueryParams>
      <QueryParam name="queryparam_name">queryparam_value</QueryParam>
      ...
    </QueryParams>
    <ReasonPhrase>[false|true]</ReasonPhrase>
    <StatusCode>[false|true]</StatusCode>
    <Verb>[false|true]</Verb>
    <Version>[false|true]</Version>
  </Copy>

  <DisplayName>policy_display_name</DisplayName>

  <IgnoreUnresolvedVariables>[true|false]
  </IgnoreUnresolvedVariables>

  <Remove>
    <!-- Can also be an empty array (<FormParams/>) -->
    <FormParams>
      <FormParam name="formparam_name">formparam_value</FormParam>
      ...
    </FormParams>
    <!-- Can also be an empty array (<Headers/>) -->
    <Headers>
      <Header name="header_name">header_value</Header>
      ...
    </Headers>
    <Payload>[false|true]</Payload>
    <!-- Can also be an empty array (<QueryParams/>) -->
    <QueryParams>
      <QueryParam name="queryparam_name">queryparam_value</QueryParam>
      ...
    </QueryParams>
  </Remove>

  <Set>
    <FormParams>
      <FormParam name="formparam_name">formparam_value</FormParam>
      ...
    </FormParams>
    <Headers>
      <Header name="header_name">header_value</Header>
      ...
    </Headers>
    <Path>path</Path>
    <Payload contentType="content_type" variablePrefix="prefix"
        variableSuffix="suffix">new_payload</Payload>
    <QueryParams>
      <QueryParam name="queryparam_name">queryparam_value</QueryParam>
      ...
    </QueryParams>
    <ReasonPhrase>reason_for_error or {variable}</ReasonPhrase>
    <StatusCode>HTTP_status_code or {variable}</StatusCode>
    <Verb>[GET|POST|PUT|PATCH|DELETE|{variable}]</Verb>
    <Version>[1.0|1.1|{variable}]</Verb>
  </Set>

</AssignMessage>

আপনি যখন এজ UI-তে আপনার প্রবাহে একটি AssignMessage নীতি যোগ করেন তখন নিম্নলিখিত উদাহরণটি ডিফল্ট সেটিংস দেখায়:

<AssignMessage continueOnError="false" enabled="true" name="assign-message-default">
  <DisplayName>Assign Message-1</DisplayName>
  <Properties/>
  <Copy source="request">
    <Headers/>
    <QueryParams/>
    <FormParams/>
    <Payload/>
    <Verb/>
    <StatusCode/>
    <ReasonPhrase/>
    <Path/>
  </Copy>
  <Remove>
    <Headers>
      <Header name="h1"/>
    </Headers>
    <QueryParams>
      <QueryParam name="q1"/>
    </QueryParams>
    <FormParams>
      <FormParam name="f1"/>
    </FormParams>
    <Payload/>
  </Remove>
  <Add>
    <Headers/>
    <QueryParams/>
    <FormParams/>
  </Add>
  <Set>
    <Headers/>
    <QueryParams/>
    <FormParams/>
    <!-- <Verb>GET</Verb> -->
    <Path/>
  </Set>
  <AssignVariable>
    <Name>name</Name>
    <Value/>
    <Ref/>
  </AssignVariable>
  <IgnoreUnresolvedVariables>true
  </IgnoreUnresolvedVariables>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

আপনি যখন এজ UI-তে একটি নতুন AssignMessage নীতি সন্নিবেশ করেন, টেমপ্লেটটিতে সমস্ত সম্ভাব্য ক্রিয়াকলাপের জন্য স্টাব থাকে৷ সাধারণত, আপনি এই নীতির সাথে কোন অপারেশন (গুলি) করতে চান তা নির্বাচন করুন এবং বাকি শিশু উপাদানগুলি সরিয়ে ফেলুন৷ উদাহরণস্বরূপ, আপনি যদি একটি অনুলিপি অপারেশন করতে চান, তাহলে <Copy> উপাদানটি ব্যবহার করুন এবং এটিকে আরও পঠনযোগ্য করতে নীতি থেকে <Add> , <Remove> , এবং অন্যান্য শিশু উপাদানগুলিকে সরান৷

এই উপাদানটির নিম্নলিখিত বৈশিষ্ট্যগুলি রয়েছে যা সমস্ত নীতিতে সাধারণ:

বৈশিষ্ট্য ডিফল্ট প্রয়োজন? বর্ণনা
name N/A প্রয়োজন

নীতির অভ্যন্তরীণ নাম। name বৈশিষ্ট্যের মানটিতে অক্ষর, সংখ্যা, স্পেস, হাইফেন, আন্ডারস্কোর এবং পিরিয়ড থাকতে পারে। এই মান 255 অক্ষরের বেশি হতে পারে না।

ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে <DisplayName> উপাদানটি ব্যবহার করুন।

continueOnError মিথ্যা ঐচ্ছিক একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে "false" এ সেট করুন৷ এটি বেশিরভাগ নীতির জন্য প্রত্যাশিত আচরণ। একটি নীতি ব্যর্থ হওয়ার পরেও প্রবাহ সম্পাদন অব্যাহত রাখতে "সত্য" তে সেট করুন৷
enabled সত্য ঐচ্ছিক নীতি প্রয়োগ করতে "সত্য" এ সেট করুন। নীতিটি "বন্ধ" করতে "মিথ্যা" এ সেট করুন। নীতিটি প্রবাহের সাথে সংযুক্ত থাকলেও তা কার্যকর করা হবে না।
async মিথ্যা অবচয় এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷

নিচের টেবিলটি <AssignMessage> এর চাইল্ড এলিমেন্টের একটি উচ্চ-স্তরের বর্ণনা প্রদান করে:

শিশু উপাদান প্রয়োজন? বর্ণনা
সাধারণ অপারেশন
<Add> ঐচ্ছিক <AssignTo> উপাদান দ্বারা নির্দিষ্ট করা বার্তা বস্তুতে তথ্য যোগ করে।

<Add> বার্তাটিতে শিরোনাম বা পরামিতি যোগ করে যা মূল বার্তায় বিদ্যমান নেই। বিদ্যমান হেডার বা প্যারামিটারগুলি ওভাররাইট করতে, <Set> উপাদান ব্যবহার করুন।

<Copy> ঐচ্ছিক <AssignTo> উপাদান দ্বারা নির্দিষ্ট করা বার্তা বস্তুতে source বৈশিষ্ট্য দ্বারা নির্দিষ্ট করা বার্তা থেকে তথ্য অনুলিপি করে।
<Remove> ঐচ্ছিক <AssignTo> উপাদানে নির্দিষ্ট করা বার্তা ভেরিয়েবল থেকে নির্দিষ্ট উপাদান মুছে দেয়।
<Set> ঐচ্ছিক অনুরোধ বা প্রতিক্রিয়ায় বিদ্যমান বৈশিষ্ট্যের মান প্রতিস্থাপন করে, যা <AssignTo> উপাদান দ্বারা নির্দিষ্ট করা হয়।

<Set> শিরোনাম বা পরামিতিগুলিকে ওভাররাইট করে যা আগে থেকেই মূল বার্তায় বিদ্যমান । নতুন শিরোনাম বা প্যারামিটার যোগ করতে, <Add> উপাদান ব্যবহার করুন।

অন্যান্য শিশু উপাদান
<AssignTo> ঐচ্ছিক AssignMessage নীতি কোন বার্তায় কাজ করে তা নির্দিষ্ট করে। এটি আদর্শ অনুরোধ বা প্রতিক্রিয়া হতে পারে, অথবা এটি একটি নতুন, কাস্টম বার্তা হতে পারে৷
<AssignVariable> ঐচ্ছিক একটি ফ্লো ভেরিয়েবলে একটি মান বরাদ্দ করে। যদি ভেরিয়েবলটি বিদ্যমান না থাকে, তাহলে <AssignVariable> এটি তৈরি করে।
<IgnoreUnresolvedVariables> ঐচ্ছিক একটি অমীমাংসিত ভেরিয়েবলের সম্মুখীন হলে প্রক্রিয়াকরণ বন্ধ হয়ে যায় কিনা তা নির্ধারণ করে।

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

উদাহরণ

নিম্নলিখিত উদাহরণগুলি এমন কিছু উপায় দেখায় যেখানে আপনি AssignMessage নীতি ব্যবহার করতে পারেন:

নিচের উদাহরণটি <Add> উপাদান সহ অনুরোধে একটি শিরোনাম যোগ করে:

<AssignMessage name="AM-add-headers-1">
  <Add>
    <Headers>
      <Header name="partner-id">{verifyapikey.VAK-1.developer.app.partner-id}</Header>
    </Headers>
  </Add>
  <AssignTo>request</AssignTo>
</AssignMessage>

নিচের উদাহরণটি <Remove> উপাদানের সাথে প্রতিক্রিয়া থেকে পেলোড মুছে দেয়:

<AssignMessage name="AM-remove-1">
  <DisplayName>remove-1</DisplayName>
  <Remove>
    <Payload>true</Payload>
  </Remove>
  <AssignTo>response</AssignTo>
</AssignMessage>

নিম্নলিখিত উদাহরণটি একটি শিরোনাম যোগ করে একটি বিদ্যমান প্রতিক্রিয়া বস্তুকে সংশোধন করে:

<AssignMessage name="AM-modify-response">
  <Set>
    <Headers>
      <Header name="Cache-Hit">{lookupcache.LookupCache-1.cachehit}</Header>
    </Headers>
  </Set>
  <IgnoreUnresolvedVariables>false
  </IgnoreUnresolvedVariables>
  <AssignTo>response</AssignTo>
</AssignMessage>

এই উদাহরণটি একটি নতুন বার্তা তৈরি করে না। পরিবর্তে, এটি একটি HTTP শিরোনাম যোগ করে একটি বিদ্যমান প্রতিক্রিয়া বার্তা পরিবর্তন করে।

যেহেতু এই উদাহরণটি <AssignTo> উপাদানের পরিবর্তনশীল নাম হিসাবে response নির্দিষ্ট করে, তাই এই নীতিটি প্রতিক্রিয়া অবজেক্টটিকে পরিবর্তন করে যা মূলত লক্ষ্য সার্ভার দ্বারা প্রত্যাবর্তিত ডেটার সাথে সেট করা হয়েছিল।

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

আপনি প্রতিক্রিয়া এবং অনুরোধ বার্তাগুলির পেলোডে গতিশীল সামগ্রী এম্বেড করতে বার্তা বরাদ্দ করতে পারেন।

একটি XML পেলোডে এজ ফ্লো ভেরিয়েবল এম্বেড করতে, নির্ধারিত ভেরিয়েবলটিকে কোঁকড়া বন্ধনীতে মোড়ানো করুন, এইভাবে: {prefix.name}

নিম্নলিখিত উদাহরণ ব্যবহারকারী- User-agent নামক একটি XML উপাদানে user-agent HTTP হেডার ফ্লো ভেরিয়েবলের মান এম্বেড করে:

<AssignMessage name="AM-set-dynamic-content">
  <AssignTo>response</AssignTo>
  <Set>
    <Payload contentType="text/xml">
      <User-agent>{request.header.user-agent}</User-agent>
    </Payload>
  </Set>
  <IgnoreUnresolvedVariables>false
  </IgnoreUnresolvedVariables>
</AssignMessage>

JSON পেলোডের জন্য, আপনি variablePrefix ব্যবহার করে ভেরিয়েবল সন্নিবেশ করতে পারেন এবং নিম্নলিখিত উদাহরণে দেখানো ডিলিমিটার অক্ষর সহ variableSuffix অ্যাট্রিবিউটগুলি ব্যবহার করতে পারেন:

<AssignMessage name="set-payload">
  <Payload contentType="application/json" variablePrefix="@" variableSuffix="#">
  {
     "user-agent": "@request.header.user-agent#"
  }
  </Payload>
</AssignMessage>

ফ্লো ভেরিয়েবলের সম্পূর্ণ তালিকার জন্য, ফ্লো ভেরিয়েবল রেফারেন্স দেখুন।

ক্লাউড রিলিজ 16.08.17 অনুযায়ী, আপনি ভেরিয়েবল সন্নিবেশ করার জন্য কোঁকড়া ধনুর্বন্ধনীও ব্যবহার করতে পারেন।

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে apikey ক্যোয়ারী প্যারামিটার সরিয়ে দেয়:

<AssignMessage name="AM-remove-query-param">
  <Remove>
    <QueryParams>
      <QueryParam name="apikey"/>
    </QueryParams>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

যখন আপনি ব্যবহারকারীর প্রমাণীকরণের জন্য VerifyAPIKey নীতি ব্যবহার করেন তখন অনুরোধ বার্তা থেকে apikey ক্যোয়ারী প্যারামিটারটি ছিনিয়ে নেওয়া একটি সর্বোত্তম অনুশীলন৷ সংবেদনশীল মূল তথ্য ব্যাকএন্ড টার্গেটে পাঠানো থেকে বিরত রাখতে আপনি এটি করেন।

নিম্নলিখিত উদাহরণ তিনটি অ্যাসাইন বার্তা নীতি ব্যবহার করে:

  1. স্ট্যাটিক মান সহ অনুরোধে তিনটি ফ্লো ভেরিয়েবল তৈরি করে
  2. অনুরোধের প্রবাহে একটি দ্বিতীয় নীতিতে গতিশীলভাবে ফ্লো ভেরিয়েবল পায়
  3. তাদের প্রতিক্রিয়ার পেলোডে সেট করে
<!-- Policy #1: Set variables in the request -->

<AssignMessage name="AM-set-variables">
    <!-- Create a variable named myAppSecret -->
    <AssignVariable>
        <Name>myAppSecret</Name>
        <Value>42</Value>
    </AssignVariable>
    <!-- Create a variable named config.environment -->
    <AssignVariable>
        <Name>config.environment</Name>
        <Value>test</Value>
    </AssignVariable>
    <!-- Create a variable named config.protocol -->
    <AssignVariable>
        <Name>config.protocol</Name>
        <Value>gopher</Value>
    </AssignVariable>
</AssignMessage>

প্রথম নীতিতে, <AssignVariable> উপাদানটি অনুরোধে তিনটি ভেরিয়েবল তৈরি করে এবং সেট করে। প্রতিটি <Name> উপাদান একটি পরিবর্তনশীল নাম নির্দিষ্ট করে, এবং <Value> মানটি নির্দিষ্ট করে।

দ্বিতীয় নীতিটি মানগুলি পড়ার জন্য <AssignVariable> উপাদান ব্যবহার করে এবং তিনটি নতুন ভেরিয়েবল তৈরি করে:

<!-- Policy #2: Get variables from the request -->
<AssignMessage continueOnError="false" enabled="true" name="get-variables">
  <AssignTo createNew="false" transport="http" type="request"/>
  <!-- Get the value of myAppSecret and create a new variable, secret -->
  <AssignVariable>
    <Name>secret</Name>
    <Ref>myAppSecret</Ref>
    <Value>0</Value>
  </AssignVariable>
  <!-- Get the value of config.environment and create a new variable, environment -->
  <AssignVariable>
    <Name>environment</Name>
    <Ref>config.environment</Ref>
    <Value>default</Value>
  </AssignVariable>
  <!-- Get the value of config.protocol and create a new variable, protocol -->
  <AssignVariable>
    <Name>protocol</Name>
    <Ref>config.protocol</Ref>
    <Value>default</Value>
  </AssignVariable>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</AssignMessage>

দ্বিতীয় নীতিতে, <Ref> উপাদান উৎস ভেরিয়েবলের উল্লেখ করে এবং <Name> উপাদানগুলি নতুন ভেরিয়েবলের নাম উল্লেখ করে। যদি <Ref> উপাদান দ্বারা উল্লেখ করা পরিবর্তনশীল অ্যাক্সেসযোগ্য না হয়, আপনি <Value> উপাদান দ্বারা নির্দিষ্ট মান ব্যবহার করতে পারেন।

নীতির এই সেটটি চেষ্টা করে দেখতে:

  1. অনুরোধের প্রবাহে নীতি #1 এবং #2 যোগ করুন। নীতি #2 এর আগে নীতি #1 রাখতে ভুলবেন না।
  2. প্রতিক্রিয়া প্রবাহে তৃতীয় নীতি যোগ করুন।
  3. তৃতীয় নীতিটি প্রতিক্রিয়াতে ভেরিয়েবল যোগ করতে <Set> উপাদান ব্যবহার করে। নিম্নলিখিত উদাহরণটি প্রতিক্রিয়াতে একটি XML পেলোড তৈরি করে যা এজ ক্লায়েন্টকে ফেরত দেয়:
    <!-- Policy #3: Add variables to the response -->
    <AssignMessage continueOnError="false" enabled="true" name="put-em-in-the-payload">
      <DisplayName>put-em-in-the-payload</DisplayName>
      <Set>
        <Payload contentType="application/xml">
          <wrapper>
            <secret>{secret}</secret>
            <config>
              <environment>{environment}</environment>
              <protocol>{protocol}</protocol>
            </config>
          </wrapper>
        </Payload>
      </Set>
      <IgnoreUnresolvedVariables>true
      </IgnoreUnresolvedVariables>
      <AssignTo createNew="false" transport="http" type="response"/>
    </AssignMessage>

    মনে রাখবেন যে <Set> এ ফ্লো ভেরিয়েবল অ্যাক্সেস করার জন্য সিনট্যাক্স হল সেগুলিকে কোঁকড়া বন্ধনীতে মোড়ানো।

    <Payload> উপাদানের contentType বৈশিষ্ট্যটি "application/xml"-এ সেট করতে ভুলবেন না।

  4. আপনার API প্রক্সিতে একটি অনুরোধ পাঠান; উদাহরণস্বরূপ:
    curl -vL https://ahamilton-eval-test.apigee.net/myproxy

    ঐচ্ছিকভাবে, আপনি xmllint এর মতো একটি ইউটিলিটির মাধ্যমে ফলাফল পাইপ করতে পারেন যাতে XML একটি সুন্দর বিন্যাসিত কাঠামোতে প্রদর্শিত হয়:

    curl -vL https://ahamilton-eval-test.apigee.net/myproxy | xmllint --format -

    প্রতিক্রিয়ার মূল অংশটি নিম্নলিখিতগুলির মতো হওয়া উচিত:

    <wrapper>
      <secret>42</secret>
      <config>
        <environment>test</environment>
        <protocol>gopher</protocol>
      </config>
    </wrapper>

নিম্নলিখিত উদাহরণে, ধরা যাক যে একটি ServiceCallout নীতি API প্রক্সি অনুরোধে রয়েছে এবং কলআউট প্রতিক্রিয়াতে একই নামের একাধিক শিরোনাম রয়েছে ( Set-Cookie )৷ পরিষেবা কলআউটের প্রতিক্রিয়া ভেরিয়েবলটিকে ডিফল্ট calloutResponse ধরে নিলে, নিম্নলিখিত নীতিটি দ্বিতীয় Set-Cookie হেডার মান পায়৷

<AssignMessage name="AM-Payload-from-SC-header">
  <Set>
    <Payload contentType="application/json">
      {"Cookies from Service Callout":" {calloutResponse.header.Set-Cookie.2}"}
    </Payload>
  </Set>
  <IgnoreUnresolvedVariables>true
  </IgnoreUnresolvedVariables>
  <AssignTo>response</AssignTo>
</AssignMessage>

সমস্ত হেডার মান তালিকাভুক্ত করতে, পরিবর্তে নিম্নলিখিত পরিবর্তনশীল ব্যবহার করুন:

{calloutResponse.header.Set-Cookie.values}

এই রেফারেন্সের প্রতিটি শিশু উপাদান অতিরিক্ত উদাহরণ আছে. আরও উদাহরণের জন্য, GitHub-এ AssignMessage উদাহরণ দেখুন।

শিশু উপাদান রেফারেন্স

এই বিভাগে <AssignMessage> -এর চাইল্ড উপাদানগুলি বর্ণনা করা হয়েছে।

<Add>

অনুরোধ বা প্রতিক্রিয়াতে তথ্য যোগ করে, যা <AssignTo> উপাদান দ্বারা নির্দিষ্ট করা হয়।

<Add> উপাদানটি বার্তাটিতে নতুন বৈশিষ্ট্য যুক্ত করে যা মূল বার্তায় বিদ্যমান নেই। বিদ্যমান বৈশিষ্ট্যের মান পরিবর্তন করতে, <Set> উপাদান ব্যবহার করুন।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ জটিল প্রকার
অভিভাবক উপাদান <AssignMessage>
শিশু উপাদান <FormParams>
<Headers>
<QueryParams>

<Add> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Add>
    <FormParams>
      <FormParam name="formparam_name">formparam_value</FormParam>
      ...
    </FormParams>
    <Headers>
      <Header name="header_name">header_value</Header>
      ...
    </Headers>
    <QueryParams>
      <QueryParam name="queryparam_name">queryparam_value</QueryParam>
      ...
    </QueryParams>
  </Add>
</AssignMessage>

নিম্নলিখিত উদাহরণটি প্রাথমিক অনুরোধ থেকে তিনটি ক্যোয়ারী স্ট্রিং পরামিতির মান পেতে <FormParams> উপাদান ব্যবহার করে এবং লক্ষ্য এন্ডপয়েন্ট অনুরোধে ফর্ম প্যারামিটার হিসাবে সেট করে:

<AssignMessage name="AM-add-formparams-3">
  <Add>
    <FormParams>
      <FormParam name="username">{request.queryparam.name}</FormParam>
      <FormParam name="zip_code">{request.queryparam.zipCode}</FormParam>
      <FormParam name="default_language">{request.queryparam.lang}</FormParam>
    </FormParams>
  </Add>
  <Remove>
    <QueryParams/>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

নিম্নলিখিত উদাহরণটি লক্ষ্য এন্ডপয়েন্টে পাঠানো অনুরোধে partner-id শিরোনাম যোগ করতে <Headers> উপাদান ব্যবহার করে:

<AssignMessage name="AM-add-headers-1">
  <Add>
    <Headers>
      <Header name="partner-id">{verifyapikey.VAK-1.developer.app.partner-id}</Header>
    </Headers>
  </Add>
  <AssignTo>request</AssignTo>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধে একটি স্ট্যাটিক মান সহ একটি একক ক্যোয়ারী প্যারামিটার যোগ করতে <QueryParams> উপাদান ব্যবহার করে:

<AssignMessage name="AM-add-queryparams-1">
  <Add>
    <QueryParams>
      <QueryParam name="myParam">42</QueryParam>
    </QueryParams>
  </Add>
  <AssignTo>request</AssignTo>
</AssignMessage>

এই উদাহরণ অনুরোধ প্রিফ্লোতে <Add> ব্যবহার করে। আপনি যদি ট্রেস টুলের মতো কোনো টুলে ফলাফল দেখেন, তাহলে https://example-target.com/get এর অনুরোধ https://example-target.com/get?myParam=42 হয়ে যাবে।

<Add> -এর চাইল্ড উপাদানগুলি গতিশীল স্ট্রিং প্রতিস্থাপন সমর্থন করে, যা বার্তা টেমপ্লেটিং নামে পরিচিত।

<FormParams> ( <Add> এর সন্তান)

অনুরোধ বার্তায় নতুন ফর্ম পরামিতি যোগ করে। এই উপাদান একটি প্রতিক্রিয়া বার্তা কোন প্রভাব আছে.

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ <FormParam> উপাদানের অ্যারে
অভিভাবক উপাদান <Add>
শিশু উপাদান <FormParam>

<FormParams> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Add>
    <FormParams>
      <FormParam name="formparam_name">formparam_value</FormParam>
      ...
    </FormParams>
  <AssignTo createNew="[true|false]" transport="http"
    type="[request|response]">destination_variable_name</AssignTo>
  </Add>
</AssignMessage>

নিম্নলিখিত উদাহরণ অনুরোধে একটি একক ফর্ম প্যারামিটার ("উত্তর") এবং একটি স্ট্যাটিক মান ("42") যোগ করে:

<AssignMessage name="AM-add-formparams-1">
  <Add>
    <FormParams>
      <FormParam name="answer">42</FormParam>
    </FormParams>
  </Add>
  <AssignTo>request</AssignTo>
</AssignMessage>

নিম্নলিখিত উদাহরণটি name ক্যোয়ারী প্যারামিটারের মান পায় এবং এটিকে একটি ফর্ম প্যারামিটার হিসাবে অনুরোধে যোগ করে এবং তারপর ক্যোয়ারী প্যারামিটারটি সরিয়ে দেয়:

<AssignMessage name="AM-Swap-QueryParam-to-FormParams">
  <Add>
    <FormParam name="name">{request.queryparam.name}</FormParam>
  </Add>
  <Remove>
    <QueryParam name="name"/>
  </Remove>
</AssignMessage>

মনে রাখবেন যে এই উদাহরণটি <AssignTo> সাথে একটি লক্ষ্য নির্দিষ্ট করে না। এই নীতি শুধুমাত্র অনুরোধে প্যারামিটার যোগ করে।

নিম্নলিখিত উদাহরণ অনুরোধে একাধিক ফর্ম পরামিতি যোগ করে:

<AssignMessage name="AM-add-formparams-3">
  <Add>
    <FormParams>
      <FormParam name="username">{request.queryparam.name}</FormParam>
      <FormParam name="zip_code">{request.queryparam.zipCode}</FormParam>
      <FormParam name="default_language">{request.queryparam.lang}</FormParam>
    </FormParams>
  </Add>
  <Remove>
    <QueryParams/>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

এই উদাহরণটি প্রারম্ভিক অনুরোধ থেকে কোয়েরি স্ট্রিং পরামিতিগুলি পায় এবং সেগুলিকে বিভিন্ন নামের ফর্ম প্যারামিটার হিসাবে যুক্ত করে৷ তারপরে এটি মূল ক্যোয়ারী পরামিতিগুলি সরিয়ে দেয়। Apigee পরিবর্তিত অনুরোধ টার্গেট এন্ডপয়েন্টে পাঠাবে।

আপনি প্রবাহ দেখতে ট্রেস টুল ব্যবহার করতে পারেন. আপনি দেখতে পাবেন যে অনুরোধের মূল অংশে URL-এনকোড করা ফর্ম ডেটা রয়েছে, যা মূলত ক্যোয়ারী স্ট্রিং প্যারামিটার হিসাবে পাস করা হয়েছিল:

username=nick&zip_code=90210&default_language=en

আপনি <FormParams> ব্যবহার করতে পারেন শুধুমাত্র যখন নিম্নলিখিত মানদণ্ড পূরণ করা হয়:

  • HTTP ক্রিয়া: POST
  • বার্তার ধরন: অনুরোধ
  • নিম্নলিখিতগুলির মধ্যে একটি (বা উভয়):
    • ফর্ম ডেটা: কিছু মান সেট করুন, বা "" (খালি স্ট্রিং)। উদাহরণস্বরূপ, curl এর সাথে, আপনার অনুরোধে -d "" যোগ করুন।
    • Content-Length শিরোনাম: 0 এ সেট করুন (যদি মূল অনুরোধে কোনো ডেটা না থাকে; অন্যথায়, বর্তমান দৈর্ঘ্য, বাইটে)। উদাহরণস্বরূপ, আপনার অনুরোধে curl যোগ করুন -H "Content-Length: 0"

যেমন:

curl -vL -X POST -d "" -H "Content-Type: application/x-www-form-urlencoded"
  https://ahamilton-eval-test.apigee.net/am-test

আপনি যখন <FormParams> যোগ করেন, তখন লক্ষ্য পরিষেবাতে বার্তা পাঠানোর আগে এজ অনুরোধের Content-Type শিরোনামটিকে "application/x-www-form-urlencoded"-এ সেট করে।

<Headers> ( <Add> এর সন্তান)

নির্দিষ্ট অনুরোধ বা প্রতিক্রিয়াতে নতুন শিরোনাম যোগ করে, যা <AssignTo> উপাদান দ্বারা নির্দিষ্ট করা হয়।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ <Header> উপাদানের অ্যারে
অভিভাবক উপাদান <Add>
শিশু উপাদান <Header>

<Headers> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Add>
    <Headers>
      <Header name="header_name">header_value</Header>
      ...
    </Headers>
  </Add>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধ বার্তায় একটি partner-id শিরোনাম যোগ করে এবং সেই শিরোলেখটিতে verifyapikey.VAK-1.developer.app.partner-id ফ্লো ভেরিয়েবলের মান নির্ধারণ করে।

<AssignMessage name="AM-add-headers-1">
  <Add>
    <Headers>
      <Header name="partner-id">{verifyapikey.VAK-1.developer.app.partner-id}</Header>
    </Headers>
  </Add>
  <AssignTo>request</AssignTo>
</AssignMessage>

<QueryParams> ( <Add> এর সন্তান)

অনুরোধে নতুন ক্যোয়ারী প্যারামিটার যোগ করে। এই উপাদান একটি প্রতিক্রিয়া উপর কোন প্রভাব আছে.

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ <QueryParam> উপাদানের অ্যারে
অভিভাবক উপাদান <Add>
শিশু উপাদান <QueryParam>

<QueryParams> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Add>
    <QueryParams>
      <QueryParam name="queryparam_name">queryparam_value</QueryParam>
      ...
    </QueryParams>
  </Add>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধের সাথে "myParam" কোয়েরি প্যারামিটার যোগ করে এবং এটিতে "42" মান নির্ধারণ করে:

<AssignMessage name="AM-add-queryparams-1">
  <Add>
    <QueryParams>
      <QueryParam name="myParam">42</QueryParam>
    </QueryParams>
  </Add>
  <AssignTo>request</AssignTo>
</AssignMessage>

আপনি <QueryParams> ব্যবহার করতে পারেন শুধুমাত্র যখন নিম্নলিখিত মানদণ্ড পূরণ করা হয়:

  • HTTP ক্রিয়া: GET
  • বার্তার ধরন: অনুরোধ

উপরন্তু, আপনি শুধুমাত্র ক্যোয়ারী প্যারামিটার সেট করতে পারেন যখন <AssignTo> এলিমেন্টের type অ্যাট্রিবিউট একটি অনুরোধ বার্তা। প্রতিক্রিয়ার উপর তাদের সেট করার কোন প্রভাব নেই।

আপনি যদি আপনার পলিসিতে ( <Add><QueryParams/></Add> ) কোয়েরি প্যারামিটারের একটি খালি অ্যারে সংজ্ঞায়িত করেন, তাহলে নীতিটি কোনো কোয়েরি প্যারামিটার যোগ করে না। এটি <QueryParams> বাদ দেওয়ার মতই।

<AssignTo>

AssignMessage নীতি কোন বস্তুতে কাজ করে তা নির্ধারণ করে। বিকল্পগুলি হল:

  • অনুরোধ বার্তা: API প্রক্সি দ্বারা গৃহীত request
  • প্রতিক্রিয়া বার্তা: লক্ষ্য সার্ভার থেকে response ফিরে
  • কাস্টম বার্তা: একটি কাস্টম অনুরোধ বা প্রতিক্রিয়া বস্তু

মনে রাখবেন যে কিছু ক্ষেত্রে, আপনি যে বস্তুটির উপর AssignMessage নীতি কাজ করে সেটি পরিবর্তন করতে পারবেন না। উদাহরণস্বরূপ, আপনি উত্তরে ক্যোয়ারী প্যারামিটার ( <QueryParams> ) বা ফর্ম প্যারামিটার ( <FormParams> ) যোগ বা পরিবর্তন করতে <Add> বা <Set> ব্যবহার করতে পারবেন না। আপনি অনুরোধে শুধুমাত্র ক্যোয়ারী প্যারামিটার এবং ফর্ম প্যারামিটার ম্যানিপুলেট করতে পারেন।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ স্ট্রিং
অভিভাবক উপাদান <AssignMessage>
শিশু উপাদান কোনোটিই নয়

আপনি যদি <AssignTo> নির্দিষ্ট না করেন, অথবা যদি আপনি <AssignTo> উপাদানটি নির্দিষ্ট করেন, কিন্তু উপাদানটির জন্য একটি পাঠ্য মান নির্দিষ্ট না করেন, তাহলে নীতিটি ডিফল্ট অনুরোধ বা প্রতিক্রিয়ার উপর কাজ করে, যেটি নীতিটি যেখানে কার্যকর হয় তার উপর ভিত্তি করে। অনুরোধের প্রবাহে নীতিটি কার্যকর হলে, এটি অনুরোধ বার্তাকে প্রভাবিত করে। যদি এটি প্রতিক্রিয়া প্রবাহে কার্যকর হয়, নীতিটি ডিফল্টরূপে প্রতিক্রিয়াকে প্রভাবিত করে৷

<AssignTo> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <AssignTo createNew="[true|false]" transport="http"
    type="[request|response]">destination_variable_name</AssignTo>
</AssignMessage>

নিম্নলিখিত উদাহরণটি নির্দিষ্ট করে যে লক্ষ্য হল আসল অনুরোধ যা টার্গেট এন্ডপয়েন্টে পাঠানো হবে:

<AssignMessage name="assignto-1">
<!-- DO NOT do this -->
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

নিম্নলিখিত উদাহরণ একটি নতুন অনুরোধ বস্তু তৈরি করে:

<AssignMessage name="AM-assignto-2"> 
  <AssignTo createNew="true" transport="http" type="request">NameOfNewMessage</AssignTo> 
</AssignMessage>

আপনি যখন একটি নতুন অনুরোধ বা প্রতিক্রিয়া অবজেক্ট তৈরি করেন, AssignMessage নীতি নীতির অন্যান্য উপাদানগুলি (যেমন <Add> , <Set> , এবং <Copy> ) সেই নতুন অনুরোধ অবজেক্টের উপর কাজ করে।

আপনি প্রবাহের পরে অন্যান্য নীতিতে নতুন অনুরোধ বস্তু অ্যাক্সেস করতে পারেন, অথবা একটি ServiceCallout নীতি সহ একটি বহিরাগত পরিষেবাতে নতুন অনুরোধ অবজেক্ট পাঠাতে পারেন।

নিম্নলিখিত উদাহরণটি "MyRequestObject" নামে একটি নতুন অনুরোধ বস্তু তৈরি করে:

<AssignMessage name="assignto-2">
  <AssignTo createNew="true" transport="http" type="request"&gt;MyRequestObject&lt;/AssignTo>
</AssignMessage>

আপনি যখন একটি নতুন অনুরোধ বা প্রতিক্রিয়া অবজেক্ট তৈরি করেন, AssignMessage নীতি নীতির অন্যান্য উপাদানগুলি (যেমন <Add> , <Set> , এবং <Copy> ) সেই নতুন অনুরোধ অবজেক্টের উপর কাজ করে।

আপনি প্রবাহের পরে অন্যান্য নীতিতে নতুন অনুরোধ বস্তু অ্যাক্সেস করতে পারেন, অথবা একটি ServiceCallout নীতি সহ একটি বহিরাগত পরিষেবাতে নতুন অনুরোধ অবজেক্ট পাঠাতে পারেন।

নিম্নলিখিত সারণী <AssignTo> এর বৈশিষ্ট্যগুলি বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা প্রয়োজন? টাইপ
createNew

মান নির্ধারণ করার সময় এই নীতি একটি নতুন বার্তা তৈরি করে কিনা তা নির্ধারণ করে।

যদি "সত্য" হয়, তাহলে নীতিটি type দ্বারা নির্দিষ্ট ধরনের একটি নতুন পরিবর্তনশীল তৈরি করে (হয় "অনুরোধ" বা "প্রতিক্রিয়া")। আপনি যদি নতুন ভেরিয়েবলের নাম উল্লেখ না করেন, তাহলে নীতি type মানের উপর ভিত্তি করে একটি নতুন অনুরোধ বা প্রতিক্রিয়া বস্তু তৈরি করে।

যদি "মিথ্যা" হয়, তাহলে নীতি দুটি উপায়ের একটিতে প্রতিক্রিয়া জানায়:

  • যদি <AssignTo> একটি অনুরোধ বা প্রতিক্রিয়ার পরিবর্তনশীল নামটি সমাধান করতে পারে, তাহলে এটি প্রক্রিয়াজাতকরণ অব্যাহত রাখে। উদাহরণস্বরূপ, যদি নীতিটি একটি অনুরোধের প্রবাহে থাকে, তাহলে ভেরিয়েবলটি অনুরোধের বস্তু। যদি নীতিটি একটি প্রতিক্রিয়াতে থাকে, তাহলে পরিবর্তনশীলটি প্রতিক্রিয়া বস্তু।
  • যদি <AssignTo> সমাধান করা না যায়, বা একটি নন-মেসেজ টাইপ সমাধান করা যায়, তাহলে নীতি একটি ত্রুটি ছুড়ে দেয়।

createNew উল্লেখ না থাকলে, নীতি দুটির একটিতে সাড়া দেয়:

  • যদি <AssignTo> এর পাঠ্য মান একটি বার্তার সমাধান করে, তাহলে প্রক্রিয়াকরণ পরবর্তী ধাপে অগ্রসর হয়।
  • যদি <AssignTo> -এর টেক্সট মান সমাধান করা না যায়, বা একটি নন-মেসেজ টাইপ সমাধান করা যায়, তাহলে type নির্দিষ্ট টাইপের একটি নতুন ভেরিয়েবল তৈরি করা হয়।
ঐচ্ছিক বুলিয়ান
transport

অনুরোধ বা প্রতিক্রিয়া বার্তা প্রকারের জন্য পরিবহন প্রকার নির্দিষ্ট করে।

ডিফল্ট মান হল "http" (একমাত্র সমর্থিত মান)।

ঐচ্ছিক স্ট্রিং
type নতুন বার্তার ধরন নির্দিষ্ট করে, যখন createNew "সত্য" হয়। বৈধ মান হল "অনুরোধ" বা "প্রতিক্রিয়া"।

আপনি যদি এই অ্যাট্রিবিউটটি বাদ দেন, তাহলে এজ হয় একটি অনুরোধ বা প্রতিক্রিয়া তৈরি করে, যেখানে এই নীতিটি কার্যকর হয় তার উপর নির্ভর করে।

ঐচ্ছিক স্ট্রিং

<AssignVariable>

একটি ফ্লো ভেরিয়েবলে একটি মান বরাদ্দ করে। যদি ফ্লো ভেরিয়েবল বিদ্যমান না থাকে, তাহলে <AssignVariable> এটি তৈরি করে।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ জটিল প্রকার
অভিভাবক উপাদান <AssignMessage>
শিশু উপাদান <Name> (প্রয়োজনীয়)
<Ref>
<Template>
<Value>

আপনি ফ্লো ভেরিয়েবলে যে মানটি বরাদ্দ করেন তা নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

  • আক্ষরিক স্ট্রিং: ফ্লো ভেরিয়েবলের জন্য একটি আক্ষরিক স্ট্রিং মান নির্দিষ্ট করতে <Value> চাইল্ড এলিমেন্ট ব্যবহার করুন।
  • ফ্লো ভেরিয়েবল: গন্তব্য ফ্লো ভেরিয়েবলের জন্য বিদ্যমান ফ্লো ভেরিয়েবলের মান নির্দিষ্ট করতে <Ref> চাইল্ড এলিমেন্ট ব্যবহার করুন। উৎস হিসেবে ব্যবহার করা যেতে পারে এমন ফ্লো ভেরিয়েবলের সম্পূর্ণ তালিকার জন্য, ফ্লো ভেরিয়েবল রেফারেন্স দেখুন।
  • বার্তা টেমপ্লেট: গন্তব্য ফ্লো ভেরিয়েবলে রাখার মান পেতে, ইন্টারপোলেট করার জন্য একটি বার্তা টেমপ্লেট নির্দিষ্ট করতে <Template> চাইল্ড এলিমেন্ট ব্যবহার করুন।

<AssignVariable> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <AssignVariable>
    <Name>variable_name</Name>
    <Ref>source_variable</Ref>
    <Template>message_template</Template>
    or
    <Template ref='template_variable'></Template>
    <Value>variable_value</Value>
  </AssignVariable>
</AssignMessage>

উৎস ভেরিয়েবল নির্দিষ্ট করতে <Ref> উপাদানটি ব্যবহার করুন। যদি <Ref> দ্বারা উল্লেখ করা পরিবর্তনশীলটি অ্যাক্সেসযোগ্য না হয়, তাহলে এজ <Value> উপাদান দ্বারা নির্দিষ্ট মান ব্যবহার করে। আপনি যদি <Template> সংজ্ঞায়িত করেন, তবে এটি অন্যান্য চাইল্ড উপাদানগুলির চেয়ে অগ্রাধিকার নেয়।

নিম্নলিখিত উদাহরণটি একটি নতুন ভেরিয়েবল, myvar এর মান আক্ষরিক মান "42" এ সেট করে:

<AssignMessage name="assignvariable-1">
  <AssignVariable>
    <Name>myvar</Name>
    <Value>42</Value>
  </AssignVariable>
</AssignMessage>

নিম্নলিখিত উদাহরণটি গন্তব্য ফ্লো ভেরিয়েবল myvar এ ফ্লো ভেরিয়েবল request.header.user-agent এর মান এবং গন্তব্য ফ্লো ভেরিয়েবল Country country নির্ধারণ করে:

<AssignMessage name="assignvariable-2">
  <AssignVariable>
    <Name>myvar</Name>
    <Ref>request.header.user-agent</Ref>
    <Value>ErrorOnCopy</Value>
  </AssignVariable>
  <AssignVariable>
    <Name>Country</Name>
    <Ref>request.queryparam.country</Ref>
    <Value>ErrorOnCopy</Value>
  </AssignVariable>
</AssignMessage>

যদি উভয় অ্যাসাইনমেন্ট ব্যর্থ হয়, তবে এজ এর পরিবর্তে গন্তব্য ফ্লো ভেরিয়েবলে "ErrorOnCopy" মান নির্ধারণ করে।

যদি myvar বা Country ফ্লো ভেরিয়েবল না থাকে, <AssignVariable> সেগুলি তৈরি করে।

নিম্নলিখিত উদাহরণটি <Template> চাইল্ড এলিমেন্ট ব্যবহার করে দুটি প্রসঙ্গ ভেরিয়েবলকে তাদের মধ্যে একটি আক্ষরিক স্ট্রিং (একটি হাইফেন) দিয়ে সংযুক্ত করে:

<AssignMessage name='AV-via-template-1'>
  <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
  <AssignVariable>
    <Name>my_destination_variable</Name>
    <Value>BADDBEEF</Value>
    <Template>{system.uuid}-{messageid}</Template>
  </AssignVariable>
</AssignMessage>

<AssignVariable> এর একটি সাধারণ ব্যবহার হল একটি ক্যোয়ারী প্যারামিটার, শিরোনাম বা অন্য মানের জন্য একটি ডিফল্ট মান সেট করা যা অনুরোধের সাথে পাস করা যেতে পারে। আপনি <Ref> এবং <Value> চাইল্ড উপাদান উভয়ের সমন্বয়ে এটি করেন। আরও তথ্যের জন্য, <Ref> এর উদাহরণগুলি দেখুন।

<Name> ( <AssignVariable> এর সন্তান)

গন্তব্য ফ্লো ভেরিয়েবলের নাম নির্দিষ্ট করে (যেমন, ভেরিয়েবল যার মান AssignMessage নীতি দ্বারা সেট করা হয়)। যদি <AssignVariable> -এ নামের ভেরিয়েবলটি বিদ্যমান না থাকে, তাহলে নীতি সেই নামের একটি তৈরি করে।

ডিফল্ট মান n/a
প্রয়োজন? প্রয়োজন
টাইপ স্ট্রিং
অভিভাবক উপাদান <AssignVariable>
শিশু উপাদান কোনোটিই নয়

<Name> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <AssignVariable>
    <Name>variable_name</Name>
  </AssignVariable>
</AssignMessage>

নিম্নলিখিত উদাহরণটি myvar হিসাবে গন্তব্য ভেরিয়েবলকে নির্দিষ্ট করে এবং এটিকে আক্ষরিক মান "42" এ সেট করে:

<AssignMessage name="assignvariable-1">
  <AssignVariable>
    <Name>myvar</Name>
    <Value>42</Value>
  </AssignVariable>
</AssignMessage>

myvar বিদ্যমান না থাকলে, <AssignVariable> এটি তৈরি করে।

<Ref> ( <AssignVariable> এর সন্তান)

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

<Ref> এর মান সবসময় একটি ফ্লো ভেরিয়েবল হিসাবে ব্যাখ্যা করা হয়; আপনি মান হিসাবে একটি আক্ষরিক স্ট্রিং নির্দিষ্ট করতে পারবেন না। একটি আক্ষরিক স্ট্রিং মান নির্ধারণ করতে, পরিবর্তে <Value> উপাদান ব্যবহার করুন।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ স্ট্রিং
অভিভাবক উপাদান <AssignVariable>
শিশু উপাদান কোনোটিই নয়

আপনি যখন <Ref> সাথে একটি ফ্লো ভেরিয়েবল নির্দিষ্ট করেন, তখন বন্ধনী "{}" বাদ দিন যা আপনি সাধারণত একটি ফ্লো ভেরিয়েবলের উল্লেখ করতে ব্যবহার করবেন। উদাহরণস্বরূপ, আপনার নতুন ভেরিয়েবলের মান client.host ফ্লো ভেরিয়েবলের মান সেট করতে:

Do this (no brackets):
  <Ref>client.host</Ref>

Do NOT do this (brackets):
  <Ref>{client.host}</Ref>

গন্তব্য ফ্লো ভেরিয়েবলের জন্য একটি ডিফল্ট মান নির্ধারণ করতে, <Ref> এর সাথে একত্রে <Value> ব্যবহার করুন। যদি <Ref> দ্বারা নির্দিষ্ট করা ফ্লো ভেরিয়েবলটি বিদ্যমান না থাকে, পড়া যায় না বা শূন্য হয়, তাহলে এজ এর পরিবর্তে গন্তব্য ফ্লো ভেরিয়েবলের জন্য <Value> এর মান নির্ধারণ করে।

<Ref> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <AssignVariable>
    <Name>variable_name</Name>
    <Ref>source_variable</Ref>
  </AssignVariable>
</AssignMessage>

নিম্নোক্ত উদাহরণটি গন্তব্য ফ্লো ভেরিয়েবল myvar এ ফ্লো ভেরিয়েবল request.header.user-agent এর মান এবং Country ভেরিয়েবলে কোয়েরি প্যারামিটার country মান নির্ধারণ করে:

<AssignMessage name="assignvariable-4">
  <AssignVariable>
    <Name>myvar</Name>
    <Ref>request.header.user-agent</Ref>
  </AssignVariable>
  <AssignVariable>
    <Name>Country</Name>
    <Ref>request.queryparam.country</Ref>
  </AssignVariable>
</AssignMessage>

এই উদাহরণে, এজ-এর কোনো অ্যাসাইনমেন্টের জন্য নির্দিষ্ট কোনো ডিফল্ট (বা ফলব্যাক মান) নেই।

নিম্নোক্ত উদাহরণটি গন্তব্য ফ্লো ভেরিয়েবল myvar এ ফ্লো ভেরিয়েবল request.header.user-agent এর মান এবং Country ভেরিয়েবলে কোয়েরি প্যারামিটার country মান নির্ধারণ করে:

<AssignMessage name="assignvariable-2">
  <AssignVariable>
    <Name>myvar</Name>
    <Ref>request.header.user-agent</Ref>
    <Value>ErrorOnCopy</Value>
  </AssignVariable>
  <AssignVariable>
    <Name>Country</Name>
    <Ref>request.queryparam.country</Ref>
    <Value>ErrorOnCopy</Value>
  </AssignVariable>
</AssignMessage>

এই উদাহরণে, যদি request.header.user-agent ফ্লো ভেরিয়েবলের মান বা Country কোয়েরি প্যারামিটার নাল, অপঠনযোগ্য বা ত্রুটিপূর্ণ হয়, তাহলে Edge নতুন ভেরিয়েবলের জন্য "ErrorOnCopy" মান নির্ধারণ করে।

<AssignVariable> এর জন্য একটি সাধারণ ব্যবহারের ক্ষেত্রে একটি ক্যোয়ারী প্যারামিটার, শিরোনাম, বা অন্য মানের ডিফল্ট মান সেট করা যা অনুরোধের সাথে পাস করা যেতে পারে। উদাহরণস্বরূপ, আপনি একটি আবহাওয়া API প্রক্সি তৈরি করুন যেখানে অনুরোধটি "w" নামে একটি একক ক্যোয়ারী প্যারামিটার নেয়। এই প্যারামিটারে সেই শহরের আইডি রয়েছে যার জন্য আপনি আবহাওয়া চান। অনুরোধ URL এর ফর্ম আছে:

http://myCO.com/v1/weather/forecastrss?w=city_ID

"w" এর জন্য একটি ডিফল্ট মান নির্ধারণ করতে, নিম্নলিখিত মত একটি AssignMessage নীতি তৈরি করুন:

<AssignMessage continueOnError="false" enabled="true" name="assignvariable-3">
  <AssignTo createNew="false" transport="http" type="request"/>
  <IgnoreUnresolvedVariables>true
  </IgnoreUnresolvedVariables>
  <AssignVariable>
    <Name>request.queryparam.w</Name>
    <Ref>request.queryparam.w</Ref>
    <Value>12797282</Value>
  </AssignVariable>
</AssignMessage>

এই উদাহরণে, <AssignVariable> request.queryparam.w এর মান পায় এবং এটি নিজের কাছে বরাদ্দ করে। যদি ফ্লো ভেরিয়েবলটি নাল হয়, যার অর্থ "w" ক্যোয়ারী প্যারামিটার অনুরোধ থেকে বাদ দেওয়া হয়েছিল, তাহলে এই উদাহরণটি <Value> উপাদান থেকে ডিফল্ট মান ব্যবহার করে। অতএব, আপনি এই API প্রক্সিতে একটি অনুরোধ করতে পারেন যা "w" ক্যোয়ারী প্যারামিটারটি বাদ দেয়:

http://myCO.com/v1/weather/forecastrss

...এবং এখনও API প্রক্সি একটি বৈধ ফলাফল প্রদান করে।

<Value> ব্যবহার করার সময় ভিন্ন, <Ref> এর মান অবশ্যই একটি ফ্লো ভেরিয়েবল হতে হবে, যেমন একটি request , response বা target বস্তুর বৈশিষ্ট্য। মানটি আপনার তৈরি করা একটি কাস্টম ফ্লো ভেরিয়েবলও হতে পারে।

আপনি যদি একটি ফ্লো ভেরিয়েবল নির্দিষ্ট করেন যা <Ref> এর মানের জন্য বিদ্যমান নেই এবং <IgnoreUnresolvedVariables> এর মান "সত্য" হয়, এজ একটি ত্রুটি ছুড়ে দেয়।

<Template> ( <AssignVariable> এর সন্তান)

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

একটি ফ্লো ভেরিয়েবল নির্দিষ্ট করতে ref অ্যাট্রিবিউট ব্যবহার করুন যেখানে ভেরিয়েবলের মান একটি বার্তা টেমপ্লেট। উদাহরণস্বরূপ, আপনি একটি বিকাশকারী অ্যাপে একটি কাস্টম বৈশিষ্ট্য হিসাবে একটি বার্তা টেমপ্লেট সংরক্ষণ করতে পারেন৷ যখন এজ ডেভেলপার অ্যাপটিকে API কী বা নিরাপত্তা টোকেন (অতিরিক্ত নীতির মাধ্যমে) যাচাই করার পরে শনাক্ত করে, তখন <AssignVariable> উপাদান অ্যাপের কাস্টম অ্যাট্রিবিউট থেকে মেসেজ টেমপ্লেট ব্যবহার করতে পারে, যা নিরাপত্তা নীতি থেকে একটি ফ্লো ভেরিয়েবল হিসেবে পাওয়া যায়।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ স্ট্রিং
অভিভাবক উপাদান <AssignVariable>
শিশু উপাদান কোনোটিই নয়

<Template> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <AssignVariable>
    <Template>message_template</Template>
    or
    <Template ref='template_variable'></Template>
  </AssignVariable>
</AssignMessage>

নিম্নলিখিত উদাহরণটি তাদের মধ্যে একটি আক্ষরিক স্ট্রিং (একটি হাইফেন) সহ দুটি প্রসঙ্গ ভেরিয়েবলকে সংযুক্ত করতে বার্তা টেমপ্লেটিং সিনট্যাক্স ব্যবহার করে:

<AssignMessage name='AV-via-template-1'>
  <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
  <AssignVariable>
    <Name>my_destination_variable</Name>
    <Value>BADDBEEF</Value>
    <Template>{system.uuid}-{messageid}</Template>
  </AssignVariable>
</AssignMessage>

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

<AssignMessage name='AV-via-template-indirectly'>  
  <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
  <AssignVariable>
    <Name>my_destination_variable</Name>
    <Value>BADDBEEF</Value>
    <Template ref='my_template_variable'/>
  </AssignVariable>
</AssignMessage>

নিম্নলিখিত উদাহরণ একটি ফ্লো ভেরিয়েবল এবং একটি পাঠ্য মান নির্দিষ্ট করে। এই ক্ষেত্রে, যদি উল্লেখিত ভেরিয়েবলটি নন-নাল হয়, তাহলে সেই মানটি টেমপ্লেট হিসাবে ব্যবহৃত হয়। যদি উল্লেখিত মানটি শূন্য হয়, তাহলে টেমপ্লেট হিসাবে পাঠ্য মান (এই ক্ষেত্রে, {system.uuid}-{messageid} ) ব্যবহার করা হয়। এই প্যাটার্নটি একটি "ওভাররাইড" মান প্রদানের জন্য উপযোগী, যেখানে কিছু ক্ষেত্রে আপনি গতিশীলভাবে সেট করা মানগুলির সাথে ডিফল্ট টেমপ্লেট (টেক্সট অংশ) ওভাররাইড করতে চান। উদাহরণস্বরূপ, একটি শর্তসাপেক্ষ বিবৃতি একটি মূল-মান মানচিত্র থেকে একটি মান ধরতে পারে এবং সেই মানটিতে উল্লেখিত ভেরিয়েবল সেট করতে পারে:

<AssignMessage name='AV-template-with-fallback'> 
 <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
  <AssignVariable>
    <Name>my_destination_variable</Name>
    <Value>BADDBEEF</Value>
    <Template ref='my_variable'>{system.uuid}-{messageid}</Template>
  </AssignVariable>
</AssignMessage>

<Value> ( <AssignVariable> এর সন্তান)

<AssignVariable> দিয়ে গন্তব্য প্রবাহ ভেরিয়েবল সেটের মান নির্ধারণ করে। মান সবসময় একটি আক্ষরিক স্ট্রিং হিসাবে ব্যাখ্যা করা হয়; আপনি মান হিসাবে একটি ফ্লো ভেরিয়েবল ব্যবহার করতে পারবেন না, এমনকি যদি আপনি মানটিকে বন্ধনীতে ("{}") মুড়ে দেন। একটি ফ্লো ভেরিয়েবল ব্যবহার করতে, পরিবর্তে <Ref> ব্যবহার করুন।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ স্ট্রিং
অভিভাবক উপাদান <AssignVariable>
শিশু উপাদান কোনোটিই নয়

যখন <Ref> উপাদানের সাথে একত্রে ব্যবহার করা হয়, <Value> ডিফল্ট (বা ফলব্যাক) মান হিসাবে কাজ করে। যদি <Ref> নির্দিষ্ট করা না থাকে, অমীমাংসিত হয়, বা শূন্য হয়, <Value> এর মান ব্যবহার করা হয়।

<Value> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <AssignVariable>
    <Name>variable_name</Name>
    <Value>variable_value</Value>
  </AssignVariable>
</AssignMessage>

নিম্নলিখিত উদাহরণটি গন্তব্য প্রবাহ ভেরিয়েবলের মান, myvar , আক্ষরিক মান "42" এ সেট করে:

<AssignMessage name="assignvariable-1">
  <AssignVariable>
    <Name>myvar</Name>
    <Value>42</Value>
  </AssignVariable>
</AssignMessage>

নিম্নোক্ত উদাহরণটি ফ্লো ভেরিয়েবল myvar এ ফ্লো ভেরিয়েবল request.header.user-agent এর মান এবং Country ভেরিয়েবলের জন্য কোয়েরি প্যারামিটার country মান নির্ধারণ করে:

<AssignMessage name="assignvariable-2">
  <AssignVariable>
    <Name>myvar</Name>
    <Ref>request.header.user-agent</Ref>
    <Value>ErrorOnCopy</Value>
  </AssignVariable>
  <AssignVariable>
    <Name>Country</Name>
    <Ref>request.queryparam.country</Ref>
    <Value>ErrorOnCopy</Value>
  </AssignVariable>
</AssignMessage>

যদি কোনো একটি অ্যাসাইনমেন্ট ব্যর্থ হয়, তাহলে <AssignVariable> এর পরিবর্তে গন্তব্য ফ্লো ভেরিয়েবলে "ErrorOnCopy" মান নির্ধারণ করে।

<Copy>

source অ্যাট্রিবিউট দ্বারা নির্দিষ্ট করা বার্তা থেকে <AssignTo> উপাদান দ্বারা নির্দিষ্ট করা বার্তার মান কপি করে। আপনি যদি <AssignTo> এর সাথে একটি লক্ষ্য নির্দিষ্ট না করেন, তাহলে এই নীতিটি যেখানে এই নীতিটি কার্যকর করে তার উপর নির্ভর করে অনুরোধ বা প্রতিক্রিয়ার মানগুলি অনুলিপি করে।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ স্ট্রিং
অভিভাবক উপাদান <AssignMessage>
শিশু উপাদান <FormParams>
<Headers>
<Path>
<Payload>
<QueryParams>
<ReasonPhrase>
<StatusCode>
<Verb>
<Version>

আপনি যদি <Copy> উপাদানের নীচে কোনও চাইল্ড উপাদান নির্দিষ্ট না করেন, তাহলে এটি মনোনীত উত্স বার্তার সমস্ত অংশ অনুলিপি করবে।

<Copy> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
    <Copy source="[request|response]">
    <!-- Can also be an empty array (<FormParams/>) -->
    <FormParams>
      <FormParam name="formparam_name">formparam_value</FormParam>
      ...
    </FormParams>
    <!-- Can also be an empty array (<Headers/>) -->
    <Headers>
      <Header name="header_name">header_value</Header>
      ...
    </Headers>
    <Path>[false|true]</Path>
    <Payload>[false|true]</Payload>
    <!-- Can also be an empty array (<QueryParams/>) -->
    <QueryParams>
      <QueryParam name="queryparam_name">queryparam_value</QueryParam>
      ...
    </QueryParams>
    <ReasonPhrase>[false|true]</ReasonPhrase>
    <StatusCode>[false|true]</StatusCode>
    <Verb>[false|true]</Verb>
    <Version>[false|true]</Version>
  </Copy>
  <!-- Used as the destination for the <Copy> values -->
  <AssignTo createNew="[true|false]" transport="http"
    type="[request|response]">destination_variable_name</AssignTo>
</AssignMessage>
  

নিম্নলিখিত উদাহরণটি একটি শিরোনাম, তিনটি ফর্ম পরামিতি, পথ, এবং request বার্তা থেকে সমস্ত ক্যোয়ারী প্যারামিটারকে newRequest নামে একটি নতুন, কাস্টম অনুরোধে অনুলিপি করে:

<AssignMessage name="AM-copy-1">
  <AssignTo createNew="true" transport="http" type="request">newRequest</AssignTo>
  <Copy source="request">
    <Headers>
      <Header name="Header_Name_1"/>
    </Headers>
    <FormParams>
      <FormParam name="Form_Param_Name_1"/>
      <FormParam name="Form_Param_Name_2"/>
      <FormParam name="Form_Param_Name_3"/>
    </FormParams>
    <Path>true</Path>
    <QueryParams/>
  </Copy>
</AssignMessage>

যেহেতু <Payload> এবং <Verb> মত উপাদান উপস্থিত নেই, নীতিটি বার্তার সেই অংশগুলি অনুলিপি করে না।

নিম্নলিখিত উদাহরণটি প্রথমে বিদ্যমান response বার্তার সমস্ত কিছু সরিয়ে দেয়, তারপর response বার্তায় secondResponse নামক একটি ভিন্ন বার্তা থেকে সমস্ত মান অনুলিপি করে:

<AssignMessage name='AM-Copy-Response'>
  <AssignTo createNew="false" transport="http" type="response">response</AssignTo>
  <!-- first remove any existing values -->
  <Remove/>
  <!-- then copy everything from the designated message -->
  <Copy source="secondResponse"/>
</AssignMessage>

<Copy> উপাদানটির একটি একক বৈশিষ্ট্য রয়েছে:

বৈশিষ্ট্য বর্ণনা প্রয়োজন? টাইপ
উৎস

অনুলিপির উৎস বস্তু নির্দিষ্ট করে।

  • source নির্দিষ্ট না হলে, এটি message ডিফল্ট হয়, যা নীতিটি যে প্রবাহে কার্যকর হয় তার উপর নির্ভর করে একটি ভিন্ন মান নেয়। যদি নীতিটি অনুরোধের প্রবাহের মধ্যে কার্যকর হয়, তাহলে message ভেরিয়েবল request বস্তুকে নির্দেশ করে। যদি নীতিটি প্রতিক্রিয়া প্রবাহের মধ্যে সঞ্চালিত হয়, তাহলে message ভেরিয়েবলটি response বস্তুকে বোঝায়।
  • যদি সোর্স ভেরিয়েবলটি সমাধান করা না যায়, বা একটি নন-মেসেজ টাইপের সমাধান করা হয়, <Copy> সাড়া দিতে ব্যর্থ হয়।
ঐচ্ছিক স্ট্রিং

<FormParams> ( <Copy> এর সন্তান)

অনুলিপিগুলি <Copy> উপাদান দ্বারা নির্দিষ্ট অনুরোধের জন্য <AssignTo> উপাদানের source বৈশিষ্ট্য দ্বারা নির্দিষ্ট করা অনুরোধ থেকে প্যারামিটার তৈরি করে। এই উপাদান একটি প্রতিক্রিয়া উপর কোন প্রভাব আছে.

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ <FormParam> উপাদানের অ্যারে বা একটি খালি অ্যারে
অভিভাবক উপাদান <Copy>
শিশু উপাদান <FormParam>

<FormParams> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Copy source="[request|response]">
    <!-- Can also be an empty array (<FormParams/>) -->
    <FormParams>
      <FormParam name="formparam_name">formparam_value</FormParam>
      ...
    </FormParams>
  </Copy>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে কাস্টম অনুরোধ "MyCustomRequest"-এ একটি একক ফর্ম প্যারামিটার কপি করে:

<AssignMessage name="copy-formparams-1">
  <Copy source="request">
    <FormParams>
      <FormParam name="paramName">Form param value 1</FormParam>
    </FormParams>
  </Copy>
  <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo>
</AssignMessage>

নিম্নলিখিত উদাহরণটি কাস্টম অনুরোধ "MyCustomRequest"-এ সমস্ত ফর্ম প্যারামিটার কপি করে:

<AssignMessage name="copy-formparams-2">
  <Copy source="request">
    <FormParams/>
  </Copy>
  <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo>
</AssignMessage>

নিম্নলিখিত উদাহরণটি কাস্টম অনুরোধ "MyCustomRequest"-এ তিনটি ফর্ম প্যারামিটার কপি করে:

<AssignMessage name="copy-formparams-3">
  <Copy source="request">
    <FormParams>
      <FormParam name="paramName1"/>
      <FormParam name="paramName2"/>
      <FormParam name="paramName3"/>
    </FormParams>
  </Copy>
  <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo>
</AssignMessage>

একই নামের একাধিক ফর্ম প্যারাম থাকলে, নিম্নলিখিত সিনট্যাক্স ব্যবহার করুন:

<AssignMessage name="copy-formparams-4">
  <Copy source="request">
    <FormParams>
      <FormParam name="f1"/>
      <FormParam name="f2"/>
      <FormParam name="f3.2"/>
    </FormParams>
  </Copy>
  <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo>
</AssignMessage>

এই উদাহরণটি "f1", "f2" এবং "f3" এর দ্বিতীয় মানটি অনুলিপি করে। যদি "f3" শুধুমাত্র একটি মান থাকে, তাহলে এটি অনুলিপি করা হয় না।

আপনি <FormParams> ব্যবহার করতে পারেন শুধুমাত্র যখন নিম্নলিখিত মানদণ্ড পূরণ করা হয়:

  • HTTP ক্রিয়া: POST
  • বার্তার ধরন: প্রতিক্রিয়া
  • নিম্নলিখিতগুলির মধ্যে একটি (বা উভয়):
    • ফর্ম ডেটা: কিছু মান সেট করুন, বা "" (খালি স্ট্রিং)। উদাহরণস্বরূপ, curl এর সাথে, আপনার অনুরোধে -d "" যোগ করুন।
    • Content-Length শিরোনাম: 0 তে সেট করুন (যদি মূল অনুরোধে কোনো ডেটা না থাকে; অন্যথায়, বর্তমান দৈর্ঘ্য। উদাহরণস্বরূপ, curl সাথে আপনার অনুরোধে -H "Content-Length: 0" যোগ করুন।

আপনি যখন <FormParams> অনুলিপি করেন, তখন লক্ষ্য পরিষেবাতে বার্তা পাঠানোর আগে <Copy> বার্তাটির Content-Type "application/x-www-form-urlencoded"-এ সেট করে।

<Headers> ( <Copy> এর সন্তান)

অনুরোধ বা প্রতিক্রিয়া বার্তা থেকে HTTP শিরোনামগুলি অনুলিপি করে <Copy> উপাদানের source বৈশিষ্ট্য দ্বারা নির্দিষ্ট অনুরোধ বা প্রতিক্রিয়া বার্তা থেকে <AssignTo> উপাদান দ্বারা নির্দিষ্ট করা।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ <Header> উপাদানের একটি অ্যারে বা একটি খালি অ্যারে
অভিভাবক উপাদান <Copy>
শিশু উপাদান <Header>

<Headers> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Copy source="[request|response]">
    <!-- Can also be an empty array (<Headers/>) -->
    <Headers>
      <Header name="header_name">header_value</Header>
      ...
    </Headers>
  </Copy>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে নতুন, কাস্টম অনুরোধ অবজেক্টে user-agent শিরোনামটি অনুলিপি করে:

<AssignMessage name="copy-headers-1">
  <Copy source="request">
    <Headers>
      <Header name="user-agent"/>
    </Headers>
  </Copy>
  <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo>
</AssignMessage>

সমস্ত শিরোনাম অনুলিপি করতে, একটি খালি <Headers> উপাদান ব্যবহার করুন, নিম্নলিখিত উদাহরণটি দেখায়:

<AssignMessage name="copy-headers-2">
  <Copy source="request">
    <Headers/>
  </Copy>
  <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo>
</AssignMessage>

একই নামের একাধিক শিরোনাম থাকলে, নিম্নলিখিত সিনট্যাক্স ব্যবহার করুন:

<AssignMessage name="copy-headers-3">
  <Copy source="request">
    <Headers>
      <Header name="h1"/>
      <Header name="h2"/>
      <Header name="h3.2"/>
    </Headers>
  </Copy>
  <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo>
</AssignMessage>

এই উদাহরণটি "h1", "h2" এবং "h3" এর দ্বিতীয় মানটি অনুলিপি করে। যদি "h3" এর শুধুমাত্র একটি মান থাকে, তাহলে এটি অনুলিপি করা হয় না।

<Path> ( <Copy> এর সন্তান)

উৎস অনুরোধ থেকে গন্তব্য অনুরোধে পথটি অনুলিপি করা উচিত কিনা তা নির্ধারণ করে। এই উপাদান একটি প্রতিক্রিয়া উপর কোন প্রভাব আছে.

যদি "সত্য" হয়, তাহলে এই নীতিটি <Copy> এলিমেন্টের source অ্যাট্রিবিউট দ্বারা নির্দিষ্ট করা অনুরোধ বার্তা থেকে <AssignTo> উপাদান দ্বারা নির্দিষ্ট করা অনুরোধ বার্তার পাথ কপি করে।

ডিফল্ট মান মিথ্যা
প্রয়োজন? ঐচ্ছিক
টাইপ বুলিয়ান
অভিভাবক উপাদান <Copy>
শিশু উপাদান কোনোটিই নয়

<Path> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Copy source="[request|response]">
    <Path>[false|true]</Path>
  </Copy>
</AssignMessage>

নিম্নলিখিত উদাহরণটি নির্দেশ করে যে AssignMessage নীতির উত্স অনুরোধ থেকে নতুন, কাস্টম অনুরোধ অবজেক্টে পথটি অনুলিপি করা উচিত:

<AssignMessage name="copy-path-1">
  <Copy source="request">
    <Path>true</Path>
  </Copy>
  <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo>
</AssignMessage>

আপনি <Path> ব্যবহার করতে পারেন শুধুমাত্র যখন নিম্নলিখিত মানদণ্ড পূরণ করা হয়:

  • বার্তার ধরন: অনুরোধ

<Payload> ( <Copy> এর সন্তান)

পেলোড উৎস থেকে গন্তব্যে অনুলিপি করা উচিত কিনা তা নির্ধারণ করে। উৎস এবং গন্তব্য অনুরোধ বা প্রতিক্রিয়া হতে পারে.

যদি "সত্য" হয়, তাহলে এই নীতিটি <Copy> উপাদানের source অ্যাট্রিবিউট দ্বারা নির্দিষ্ট করা বার্তা থেকে পেলোডকে <AssignTo> উপাদান দ্বারা নির্দিষ্ট করা বার্তায় অনুলিপি করে।

ডিফল্ট মান মিথ্যা
প্রয়োজন? ঐচ্ছিক
টাইপ বুলিয়ান
অভিভাবক উপাদান <Copy>
শিশু উপাদান কোনোটিই নয়

<Payload> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Copy source="[request|response]">
    <Payload>[false|true]</Payload>
  </Copy>
</AssignMessage>

নিম্নলিখিত উদাহরণটি <Payload> "true" তে সেট করে যাতে অনুরোধের পেলোডটি অনুরোধ থেকে প্রতিক্রিয়াতে অনুলিপি করা হয়:

<AssignMessage name="AM-copy-payload-1">
  <Copy source="request">
    <Payload>true</Payload>
  </Copy>
  <AssignTo>response</AssignTo>
</AssignMessage>

<QueryParams> ( <Copy> এর সন্তান)

<অ্যাসাইনটো> এলিমেন্টের দ্বারা নির্দিষ্ট করা অনুরোধে <Copy> <AssignTo> উপাদানের source বৈশিষ্ট্য দ্বারা নির্দিষ্ট করা অনুরোধ থেকে ক্যোয়ারী স্ট্রিং প্যারামিটারগুলি অনুলিপি করে। এই উপাদান একটি প্রতিক্রিয়া উপর কোন প্রভাব আছে.

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ <QueryParam> উপাদানগুলির একটি অ্যারে বা একটি খালি অ্যারে৷
অভিভাবক উপাদান <QueryParam>
শিশু উপাদান কোনোটিই নয়

<QueryParams> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Copy source="[request|response]">
    <!-- Can also be an empty array (<QueryParams/>) -->
    <QueryParams>
      <QueryParam name="queryparam_name">queryparam_value</QueryParam>
      ...
    </QueryParams>
  </Copy>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে "my_param" ক্যোয়ারী প্যারামিটারটিকে একটি নতুন, কাস্টম অনুরোধ বস্তুতে অনুলিপি করে:

<AssignMessage name="copy-queryparams-1">
  <Copy source="request">
    <QueryParams>
      <QueryParam name="my_param"/>
    </QueryParams>
  </Copy>
  <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে সমস্ত ক্যোয়ারী প্যারামিটার একটি নতুন, কাস্টম অনুরোধ অবজেক্টে অনুলিপি করে:

<AssignMessage name="copy-queryparams-2">
  <Copy source="request">
    <QueryParams/>
  </Copy>
  <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo>
</AssignMessage>

একই নামের একাধিক ক্যোয়ারী প্যারাম থাকলে, নিম্নলিখিত সিনট্যাক্স ব্যবহার করুন:

<AssignMessage name="copy-queryparams-3">
  <Copy source="request">
    <QueryParams>
      <QueryParam name="qp1"/>
      <QueryParam name="qp2"/>
      <QueryParam name="qp3.2"/>
    </QueryParams>
  </Copy>
  <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo>
</AssignMessage>

এই উদাহরণটি "qp1", "qp2" এবং "qp3" এর দ্বিতীয় মান কপি করে। যদি "qp3" এর শুধুমাত্র একটি মান থাকে, তাহলে এটি অনুলিপি করা হয় না।

আপনি <QueryParams> ব্যবহার করতে পারেন শুধুমাত্র যখন নিম্নলিখিত মানদণ্ড পূরণ করা হয়:

  • HTTP ক্রিয়া: GET
  • বার্তার ধরন: অনুরোধ

<ReasonPhrase> ( <Copy> এর সন্তান)

কারণ বাক্যাংশটি উৎস প্রতিক্রিয়া থেকে গন্তব্য প্রতিক্রিয়াতে অনুলিপি করা উচিত কিনা তা নির্ধারণ করে। এই উপাদান একটি অনুরোধের উপর কোন প্রভাব নেই.

যদি "সত্য" হয়, তাহলে এই নীতিটি <Copy> উপাদান দ্বারা নির্দিষ্ট প্রতিক্রিয়ার জন্য <AssignTo> কপি> উপাদানের source অ্যাট্রিবিউট দ্বারা নির্দিষ্ট প্রতিক্রিয়া থেকে ReasonPhrase অনুলিপি করে।

ডিফল্ট মান মিথ্যা
প্রয়োজন? ঐচ্ছিক
টাইপ বুলিয়ান
অভিভাবক উপাদান <Copy>
শিশু উপাদান কোনোটিই নয়

<ReasonPhrase> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Copy source="[request|response]">
    <ReasonPhrase>[false|true]</ReasonPhrase>
  </Copy>
</AssignMessage>

নিচের উদাহরণটি <ReasonPhrase> true সেট করে। উৎস এবং <AssignTo> এলিমেন্টের সাথে উল্লেখ করা হয়েছে, এর ফলে <Copy> নাম দেওয়া প্রতিক্রিয়া বার্তা থেকে response অবজেক্টে কারণ বাক্যাংশটি অনুলিপি করতে পারে:

<AssignMessage name="AM-copy-reasonphrase-1">
  <Copy source="serviceCalloutResponse">
    <ReasonPhrase>true</ReasonPhrase>
  </Copy>
  <AssignTo>response</AssignTo>
</AssignMessage>

আপনি যখন উত্স এবং গন্তব্য বার্তাগুলি টাইপ প্রতিক্রিয়া হয় তখনই আপনি <ReasonPhrase> ব্যবহার করতে পারেন।

<StatusCode> ( <Copy> এর সন্তান)

স্ট্যাটাস কোডটি গন্তব্য প্রতিক্রিয়ার উত্স প্রতিক্রিয়া থেকে অনুলিপি করা হয়েছে কিনা তা নির্ধারণ করে। এই উপাদানটির কোনও অনুরোধে কোনও প্রভাব নেই।

যদি "সত্য" <AssignTo> source <Copy> নীতিটি <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

ডিফল্ট মান মিথ্যা
প্রয়োজন? ঐচ্ছিক
টাইপ বুলিয়ান
মূল উপাদান <Copy>
শিশু উপাদান কোনোটিই নয়

<StatusCode> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Copy source="[request|response]">
    <StatusCode>[false|true]</StatusCode>
  </Copy>
</AssignMessage>

নিম্নলিখিত উদাহরণটি <StatusCode> থেকে "সত্য" সেট করে, যা ডিফল্ট প্রতিক্রিয়া অবজেক্ট থেকে একটি নতুন, কাস্টম প্রতিক্রিয়া অবজেক্টে স্ট্যাটাস কোডটি অনুলিপি করে:

<AssignMessage name="copy-statuscode-1">
  <Copy source="response">
    <StatusCode>true</StatusCode>
  </Copy>
  <AssignTo createNew="true" transport="http" type="response">MyCustomResponse</AssignTo>
</AssignMessage>

উত্স এবং গন্তব্য বার্তাগুলি টাইপ প্রতিক্রিয়া হয় কেবল তখনই আপনি <StatusCode> ব্যবহার করতে পারেন।

<StatusCode> এর একটি সাধারণ ব্যবহার হ'ল প্রক্সি রেসপন্স স্ট্যাটাস কোডটিকে লক্ষ্য থেকে প্রাপ্ত চেয়ে আলাদা মানতে সেট করা।

<Verb> ( <Copy> এর সন্তান)

উত্স অনুরোধ থেকে গন্তব্য অনুরোধে HTTP ক্রিয়াটি অনুলিপি করা হয়েছে কিনা তা নির্ধারণ করে। এই উপাদানটির কোনও প্রতিক্রিয়াতে কোনও প্রভাব নেই।

যদি " source " <AssignTo> তবে <Copy>

ডিফল্ট মান মিথ্যা
প্রয়োজন? ঐচ্ছিক
টাইপ বুলিয়ান
মূল উপাদান <Copy>
শিশু উপাদান কোনোটিই নয়

<Verb> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Copy source="[request|response]">
    <Verb>[false|true]</Verb>
  </Copy>
</AssignMessage>

নিম্নলিখিত উদাহরণটি <Verb> থেকে "সত্য" সেট করে, যা ডিফল্ট অনুরোধ থেকে ক্রিয়াটি একটি নতুন, কাস্টম অনুরোধে অনুলিপি করে:

<AssignMessage name="copy-verb-1">
  <Copy source="request">
    <Verb>true</Verb>
  </Copy>
  <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo>
</AssignMessage>

নিম্নলিখিত মানদণ্ডগুলি পূরণ করা হলে আপনি <Verb> ব্যবহার করতে পারেন:

  • বার্তার ধরণ: অনুরোধ

<Version> ( <Copy> এর সন্তান)

উত্স অনুরোধ থেকে গন্তব্য অনুরোধে এইচটিটিপি সংস্করণটি অনুলিপি করা হয়েছে কিনা তা নির্ধারণ করে। এই উপাদানটির কোনও প্রতিক্রিয়াতে কোনও প্রভাব নেই।

যদি "সত্য" <AssignTo> তবে <Copy> এলিমেন্টের source বৈশিষ্ট্যটিতে পাওয়া <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

ডিফল্ট মান মিথ্যা
প্রয়োজন? ঐচ্ছিক
টাইপ বুলিয়ান
মূল উপাদান <Copy>
শিশু উপাদান কোনোটিই নয়

<Version> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Copy source="[request|response]">
    <Version>[false|true]</Version>
  </Copy>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধে <Version> "সত্য" থেকে সেট করে, যা ডিফল্ট অনুরোধ অবজেক্ট থেকে সংস্করণটি একটি নতুন, কাস্টম অনুরোধ অবজেক্টে অনুলিপি করে:

<AssignMessage name="copy-version-1">
  <Copy source="request">
    <Version>true</Version>
  </Copy>
  <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo>
</AssignMessage>

আপনি কেবল <Version> ব্যবহার করতে পারেন যখন নিম্নলিখিত মানদণ্ডগুলি পূরণ করা হয়:

  • বার্তার ধরণ: অনুরোধ

<DisplayName>

ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, আরও স্বাভাবিক-শব্দযুক্ত নামের সাথে লেবেল করতে name বৈশিষ্ট্যের পাশাপাশি ব্যবহার করুন৷

<DisplayName> উপাদানটি সকল নীতিতে সাধারণ।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক। আপনি <DisplayName> বাদ দিলে, নীতির name বৈশিষ্ট্যের মান ব্যবহার করা হয়
টাইপ স্ট্রিং
অভিভাবক উপাদান < PolicyElement >
শিশু উপাদান কোনোটিই নয়

<DisplayName> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<PolicyElement>
  <DisplayName>policy_display_name</DisplayName>
  ...
</PolicyElement>
<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

<DisplayName> উপাদানটির কোনো বৈশিষ্ট্য বা শিশু উপাদান নেই।

<IgnoreUnresolvedVariables>

যখন কোনও অমীমাংসিত পরিবর্তনশীল মুখোমুখি হয় তখন প্রক্রিয়াজাতকরণ বন্ধ হয়ে যায় কিনা তা নির্ধারণ করে।

ডিফল্ট মান মিথ্যা
প্রয়োজন? ঐচ্ছিক
টাইপ বুলিয়ান
মূল উপাদান <AssignMessage>
শিশু উপাদান কোনোটিই নয়

অমীমাংসিত ভেরিয়েবলগুলি উপেক্ষা করতে এবং প্রক্রিয়াজাতকরণ চালিয়ে যাওয়ার জন্য true সেট করুন; অন্যথায় false । ডিফল্ট মান false

<AssignMessage> এর continueOnError true হিসাবে সেট করা থেকে <উপেক্ষা true <IgnoreUnresolvedVariables> সেট করা সেট করা এটি ভেরিয়েবলের মান নির্ধারণ এবং পাওয়ার জন্য সুনির্দিষ্ট। যদি আপনি continueOnError true সেট করেন, তবে এজ সমস্ত ত্রুটিগুলি উপেক্ষা করে, ভেরিয়েবলগুলি ব্যবহার করার সময় কেবল ত্রুটিগুলি নয়।

<IgnoreUnresolvedVariables> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <IgnoreUnresolvedVariables>[true|false]
  </IgnoreUnresolvedVariables>
</AssignMessage>

নিম্নলিখিত উদাহরণটি <IgnoreUnresolvedVariables> "সত্য" থেকে সেট করে:

<AssignMessage name="AM-Set-Headers">
  <Set>
    <Headers>
      <Header name='new-header'>{possibly-defined-variable}<Header>
    </Headers>
  </Set>
  <IgnoreUnresolvedVariables>true
  </IgnoreUnresolvedVariables>
</AssignMessage>

কারণ <IgnoreUnresolvedVariables> উপেক্ষা করা রেজোলজডভরিবেলস> true সেট করা হয়েছে, যদি possibly-defined-variable ভেরিয়েবলটি সংজ্ঞায়িত না করা হয় তবে এই নীতিটি কোনও ত্রুটি ছুঁড়ে ফেলবে না।

<Remove>

শিরোনাম, ক্যোয়ারী পরামিতি, ফর্ম পরামিতি এবং/অথবা কোনও বার্তা থেকে বার্তা পে -লোড সরিয়ে দেয়। বার্তাটি একটি অনুরোধ বা প্রতিক্রিয়া হতে পারে। <AssignTo> <Remove>

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ জটিল প্রকার
মূল উপাদান <AssignMessage>
শিশু উপাদান <FormParams>
<Headers>
<Payload>
<QueryParams>

<Remove> জন্য একটি সাধারণ ব্যবহারের ক্ষেত্রে হ'ল এটি ব্যাকএন্ড সার্ভারে পাস করা এড়াতে আগত অনুরোধ অবজেক্ট থেকে সংবেদনশীল তথ্য রয়েছে এমন একটি ক্যোয়ারী প্যারামিটার বা শিরোনাম মুছতে হবে।

<Remove> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Remove>
    <!-- Can also be an empty array (<FormParams/>) -->
    <FormParams>
      <FormParam name="formparam_name">formparam_value</FormParam>
      ...
    </FormParams>
    <!-- Can also be an empty array (<Headers/>) -->
    <Headers>
      <Header name="header_name">header_value</Header>
      ...
    </Headers>
    <Payload>[false|true]</Payload>
    <!-- Can also be an empty array (<QueryParams/>) -->
    <QueryParams>
      <QueryParam name="queryparam_name">queryparam_value</QueryParam>
      ...
    </QueryParams>
  </Remove>
</AssignMessage>

নিম্নলিখিত উদাহরণটি প্রতিক্রিয়া থেকে বার্তার শরীরকে সরিয়ে দেয়:

<AssignMessage name="AM-remove-1">
  <DisplayName>remove-1</DisplayName>
  <Remove>
    <Payload>true</Payload>
  </Remove>
  <AssignTo>response</AssignTo>
</AssignMessage>

প্রতিক্রিয়া প্রবাহে, এই নীতিটি কেবলমাত্র এইচটিটিপি হেডারকে ক্লায়েন্টের কাছে ফিরিয়ে দেয়, প্রতিক্রিয়াটির দেহটি সরিয়ে দেয়।

নিম্নলিখিত উদাহরণটি সমস্ত ফর্ম পরামিতি এবং request অবজেক্ট থেকে একটি ক্যোয়ারী প্যারামিটার সরিয়ে দেয়:

<AssignMessage name="AM-remove-2">
  <Remove>
    <!-- Empty (<FormParams/>) removes all form parameters -->
    <FormParams/>
    <QueryParams>
      <QueryParam name="qp1"/>
    </QueryParams>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

নিম্নলিখিত উদাহরণটি কোনও বার্তা অবজেক্ট থেকে সমস্ত কিছু সরিয়ে দেয়:

<AssignMessage name="AM-remove-3">
  <Remove/>
  <AssignTo>request</AssignTo>
</AssignMessage>

সাধারণত আপনি কেবল তখনই এটি করবেন যদি আপনি বার্তায় কিছু প্রতিস্থাপনের মান সেট করতে <Set> উপাদান বা <Copy> উপাদানটি ব্যবহার করতে যাচ্ছিলেন।

<FormParams> ( <Remove> এর সন্তান)

অনুরোধ থেকে নির্দিষ্ট ফর্ম পরামিতিগুলি সরিয়ে দেয়। এই উপাদানটির কোনও প্রতিক্রিয়াতে কোনও প্রভাব নেই।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ <FormParam> উপাদান বা একটি খালি অ্যারের অ্যারে
মূল উপাদান <Remove>
শিশু উপাদান <FormParam>

<FormParams> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Remove>
    <!-- Can also be an empty array (<FormParams/>) -->
    <FormParams>
      <FormParam name="formparam_name">formparam_value</FormParam>
      ...
    </FormParams>
  </Remove>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে তিনটি ফর্ম পরামিতি সরিয়ে দেয়:

<AssignMessage name="AM-remove-formparams-1">
  <Remove>
    <FormParams>
      <FormParam name="form_param_1"/>
      <FormParam name="form_param_2"/>
      <FormParam name="form_param_3"/>
    </FormParams>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে সমস্ত ফর্ম পরামিতিগুলি সরিয়ে দেয়:

<AssignMessage name="AM-remove-formparams-2">
  <Remove>
    <FormParams/>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

যদি একই নামের সাথে একাধিক ফর্ম প্যারাম থাকে তবে নিম্নলিখিত সিনট্যাক্সটি ব্যবহার করুন:

<AssignMessage name="AM-remove-formparams-3">
  <Remove>
    <FormParams>
      <FormParam name="f1"/>
      <FormParam name="f2"/>
      <FormParam name="f3.2"/>
    </FormParams>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

এই উদাহরণটি "এফ 1", "এফ 2" এবং "এফ 3" এর দ্বিতীয় মান সরিয়ে দেয়। যদি "F3" এর কেবল একটি মান থাকে তবে এটি সরানো হয় না।

নিম্নলিখিত মানদণ্ডগুলি পূরণ করা হলে আপনি <FormParams> ব্যবহার করতে পারেন:

  • বার্তার ধরণ: অনুরোধ
  • Content-Type : "অ্যাপ্লিকেশন/এক্স-ডাব্লুডাব্লুডাব্লু-ফর্ম-অর্লেনকোডেড"

<Headers> ( <Remove> এর সন্তান)

অনুরোধ বা প্রতিক্রিয়া থেকে নির্দিষ্ট HTTP শিরোনামগুলি সরিয়ে দেয়, যা <AssignTo> উপাদান দ্বারা নির্দিষ্ট করা আছে।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ <Header> উপাদান বা একটি খালি অ্যারের অ্যারে
মূল উপাদান <Remove>
শিশু উপাদান <Header>

<Headers> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Remove>
    <!-- Can also be an empty array (<Headers/>) -->
    <Headers>
      <Header name="header_name">header_value</Header>
      ...
    </Headers>
  </Remove>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে user-agent শিরোনামটি সরিয়ে দেয়:

<AssignMessage name="AM-remove-one-header">
  <Remove>
    <Headers>
      <Header name="user-agent"/>
    </Headers>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে সমস্ত শিরোনাম সরিয়ে দেয়:

<AssignMessage name="AM-remove-all-headers">
  <Remove>
    <Headers/>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

যদি একই নাম সহ একাধিক শিরোনাম থাকে তবে নিম্নলিখিত সিনট্যাক্সটি ব্যবহার করুন:

<AssignMessage name="AM-remove-headers-3">
  <Remove>
    <Headers>
      <Header name="h1"/>
      <Header name="h2"/>
      <Header name="h3.2"/>
    </Headers>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

এই উদাহরণটি "এইচ 1", "এইচ 2" এবং অনুরোধ থেকে "এইচ 3" এর দ্বিতীয় মান সরিয়ে দেয়। যদি "এইচ 3" এর কেবল একটি মান থাকে তবে এটি সরানো হয় না।

<Payload> ( <Remove> এর সন্তান)

<Remove> <AssignTo> পে -লোড সাফ করতে "সত্য" এ সেট করুন; অন্যথায় "মিথ্যা"। ডিফল্ট মান "মিথ্যা"।

ডিফল্ট মান মিথ্যা
প্রয়োজন? ঐচ্ছিক
টাইপ বুলিয়ান
মূল উপাদান <Remove>
শিশু উপাদান কোনোটিই নয়

<Payload> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Remove>
    <Payload>[false|true]</Payload>
  </Remove>
</AssignMessage>

নিম্নলিখিত উদাহরণটি <Payload> "সত্য" থেকে সেট করে যাতে অনুরোধের পে -লোড সাফ হয়ে যায়:

<AssignMessage name="AM-remove-payload-1">
  <Remove>
    <Payload>true</Payload>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

<QueryParams> ( <Remove> এর সন্তান)

অনুরোধ থেকে নির্দিষ্ট ক্যোয়ারী পরামিতিগুলি সরিয়ে দেয়। এই উপাদানটির কোনও প্রতিক্রিয়াতে কোনও প্রভাব নেই।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ <QueryParam> উপাদান বা একটি খালি অ্যারের অ্যারে
মূল উপাদান <Remove>
শিশু উপাদান <QueryParam>

<QueryParams> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Remove>
    <!-- Can also be an empty array (<QueryParams/>) -->
    <QueryParams>
      <QueryParam name="queryparam_name">queryparam_value</QueryParam>
      ...
    </QueryParams>
  </Remove>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে একটি একক ক্যোয়ারী প্যারামিটার সরিয়ে দেয়:

<AssignMessage name="AM-remove-queryparams-1">
  <Remove>
      <QueryParams>
        <QueryParam name="qp1"/>
      </QueryParams>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে সমস্ত ক্যোয়ারী পরামিতিগুলি সরিয়ে দেয়:

<AssignMessage name="AM-remove-queryparams-2">
  <Remove>
      <QueryParams/>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

যদি একই নামের সাথে একাধিক ক্যোয়ারী প্যারাম থাকে তবে নিম্নলিখিত সিনট্যাক্সটি ব্যবহার করুন:

<AssignMessage name="AM-remove-queryparams-3">
  <Remove>
      <QueryParams>
        <QueryParam name="qp1"/>
        <QueryParam name="qp2"/>
        <QueryParam name="qp3.2"/>
      </QueryParams>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

এই উদাহরণটি "কিউপি 1", "কিউপি 2" এবং অনুরোধ থেকে "কিউপি 3" এর দ্বিতীয় মান সরিয়ে দেয়। যদি "কিউপি 3" এর কেবল একটি মান থাকে তবে এটি সরানো হয় না।

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে apikey ক্যোয়ারী প্যারামিটারটি সরিয়ে দেয়:

<AssignMessage name="AM-remove-query-param">
  <Remove>
    <QueryParams>
      <QueryParam name="apikey"/>
    </QueryParams>
  </Remove>
  <AssignTo>request</AssignTo>
</AssignMessage>

নিম্নলিখিত মানদণ্ডগুলি পূরণ করা হলে আপনি <QueryParams> ব্যবহার করতে পারেন:

  • Http ক্রিয়া: পান
  • বার্তার ধরণ: অনুরোধ

<Set>

অনুরোধ বা প্রতিক্রিয়া বার্তায় তথ্য সেট করে, যা <AssignTo> উপাদান দ্বারা নির্দিষ্ট করা আছে। <Set> শিরোনাম বা ক্যোয়ারী বা ফর্ম প্যারামিটারগুলি যা ইতিমধ্যে মূল বার্তায় বিদ্যমান। একটি এইচটিটিপি বার্তায় শিরোনাম এবং ক্যোয়ারী এবং ফর্ম পরামিতি একাধিক মান ধারণ করতে পারে। শিরোনাম বা প্যারামিটারের জন্য অতিরিক্ত মান যুক্ত করতে, পরিবর্তে <Add> উপাদানটি ব্যবহার করুন।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ জটিল প্রকার
মূল উপাদান <AssignMessage>
শিশু উপাদান <FormParams>
<Headers>
<Payload>
<Path>
<QueryParams>
<ReasonPhrase>
<StatusCode>
<Verb>
<Version>

<Set> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Set>
    <FormParams>
      <FormParam name="formparam_name">formparam_value</FormParam>
      ...
    </FormParams>
    <Headers>
      <Header name="header_name">header_value</Header>
      ...
    </Headers>
    <Path>path</Path>
    <Payload contentType="content_type" variablePrefix="prefix"
        variableSuffix="suffix">new_payload</Payload>
    <QueryParams>
      <QueryParam name="queryparam_name">queryparam_value</QueryParam>
      ...
    </QueryParams>
    <ReasonPhrase>reason_for_error or {variable}</ReasonPhrase>
    <StatusCode>HTTP_status_code or {variable}</StatusCode>
    <Verb>[GET|POST|PUT|PATCH|DELETE|{variable}]</Verb>
    <Version>[1.0|1.1|{variable}]</Verb>
  </Set>
</AssignMessage>

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

<AssignMessage name="AM-Set-Header">
  <Set>
    <Headers>
        <Header name="authenticated-developer">{verifyapikey.VAK-1.developer.id}</Header>
    </Headers>
  </Set>
  <AssignTo>request</AssignTo>
</AssignMessage>

নিম্নলিখিত উদাহরণটি একটি প্রতিক্রিয়ার জন্য পে-লোডকে ওভাররাইট করে, পাশাপাশি Content-Type শিরোনাম।

<AssignMessage name="AM-Overwrite-Payload">
  <Set>
    <Payload contentType="application/json">{ "status" : 42 }</Payload>
  </Set>
  <AssignTo>response</AssignTo>
</AssignMessage>

<FormParams> ( <Set> এর সন্তান)

একটি অনুরোধে বিদ্যমান ফর্ম পরামিতিগুলিকে ওভাররাইট করে এবং আপনি এই উপাদানটির সাথে নির্দিষ্ট করা নতুন মানগুলির সাথে তাদের প্রতিস্থাপন করে। এই উপাদানটির কোনও প্রতিক্রিয়াতে কোনও প্রভাব নেই।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ <FormParam> উপাদানগুলির অ্যারে
মূল উপাদান <Set>
শিশু উপাদান <FormParam>

<FormParams> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Set>
    <FormParams>
      <FormParam name="formparam_name">formparam_value</FormParam>
      ...
    </FormParams>
  </Set>
</AssignMessage>

নিম্নলিখিত উদাহরণটি একটি নতুন, কাস্টম অনুরোধে request.header.myparam মানকে "মাইপ্যারাম" নামে একটি ফর্ম প্যারামিটার সেট করে He

<AssignMessage name="AM-set-formparams-1">
  <Set>
    <FormParams>
      <FormParam name="myparam">{request.header.myparam}</FormParam>
    </FormParams>
  </Set>
  <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo>
</AssignMessage>

নিম্নলিখিত মানদণ্ডগুলি পূরণ করা হলে আপনি <FormParams> ব্যবহার করতে পারেন:

  • HTTP ক্রিয়া: পোস্ট
  • বার্তার ধরণ: অনুরোধ

আপনি যদি আপনার নীতিমালায় খালি ফর্ম পরামিতিগুলি সংজ্ঞায়িত করেন ( <Add><FormParams/></Add> ), নীতিটি কোনও ফর্ম পরামিতি যুক্ত করে না। এটি <FormParams> বাদ দেওয়ার মতোই।

<Set> টার্গেট এন্ডপয়েন্টে প্রেরণের আগে বার্তার Content-Type "অ্যাপ্লিকেশন/এক্স-ডাব্লুডাব্লুডাব্লু-ফর্ম-অর্লেনকোডড" এ পরিবর্তন করে।

<Headers> ( <Set> এর সন্তান)

অনুরোধ বা প্রতিক্রিয়াতে বিদ্যমান HTTP শিরোনামগুলি ওভাররাইট করে, যা <AssignTo> উপাদান দ্বারা নির্দিষ্ট করা আছে।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ <Header> উপাদানগুলির অ্যারে
মূল উপাদান <Set>
শিশু উপাদান <Header>

<Headers> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Set>
    <Headers>
      <Header name="header_name">header_value</Header>
      ...
    </Headers>
  </Set>
</AssignMessage>

নিম্নলিখিত উদাহরণটি ratelimit.Quota-1.available.count ভেরিয়েবলের মানটিতে x-ratelimit-remaining শিরোনাম সেট করে:

<AssignMessage name="AM-Set-RateLimit-Header">
  <Set>
    <Headers>
      <Header name="X-RateLimit-Remaining">{ratelimit.Quota-1.available.count}</Header>
    </Headers>
  </Set>
  <AssignTo>response</AssignTo>
</AssignMessage>

আপনি যদি আপনার নীতিমালায় খালি শিরোনামগুলি সংজ্ঞায়িত করেন ( <Set><Headers/></Set> ), নীতিটি কোনও শিরোনাম সেট করে না। এটি <Headers> বাদ দেওয়ার মতো একই প্রভাব ফেলবে।

<Path> ( <Set> এর সন্তান)

<Payload> ( <Set> এর সন্তান)

একটি অনুরোধ বা প্রতিক্রিয়ার জন্য বার্তা বডিটি সংজ্ঞায়িত করে, যা <AssignTo> উপাদান দ্বারা নির্দিষ্ট করা আছে। পে -লোড কোনও বৈধ সামগ্রীর প্রকার হতে পারে, যেমন সরল পাঠ্য, জেএসএন বা এক্সএমএল।

ডিফল্ট মান খালি স্ট্রিং
প্রয়োজন? ঐচ্ছিক
টাইপ স্ট্রিং
মূল উপাদান <Set>
শিশু উপাদান কোনোটিই নয়

<Payload> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Set>
    <Payload contentType="content_type" variablePrefix="prefix"
        variableSuffix="suffix">new_payload</Payload>
  </Set>
</AssignMessage>

নিম্নলিখিত উদাহরণটি একটি সরল পাঠ্য পে -লোড সেট করে:

<AssignMessage name="set-payload-1">
  <Set>
    <Payload contentType="text/plain">42</Payload>
  </Set>
</AssignMessage>

নিম্নলিখিত উদাহরণটি একটি JSON পে -লোড সেট করে:

<AssignMessage name="set-payload-2">
  <Set>
    <Payload contentType="application/json">
      {"name":"foo", "type":"bar"}
    </Payload>
  </Set>
</AssignMessage>

নিম্নলিখিত উদাহরণটি কোঁকড়ানো ধনুর্বন্ধনীগুলিতে ভেরিয়েবলের নামগুলি মোড়ক করে পে -লোডে পরিবর্তনশীল মানগুলি সন্নিবেশ করে:

<AssignMessage name="set-payload-3">
  <Set>
    <Payload contentType="application/json">
      {"name":"foo", "type":"{variable_name}"}
    </Payload>
  </Set>
</AssignMessage>

অ্যাপিগির পূর্ববর্তী সংস্করণগুলিতে, আপনি জেএসএন পে -লোডের মধ্যে ভেরিয়েবল রেফারেন্সগুলি বোঝাতে কোঁকড়ানো ধনুর্বন্ধনী ব্যবহার করতে পারেন নি। এই রিলিজগুলিতে, আপনাকে ডিলিমিটার অক্ষর নির্দিষ্ট করতে variablePrefix এবং variableSuffix বৈশিষ্ট্যগুলি ব্যবহার করতে হবে এবং সেগুলি ব্যবহার করার জন্য ভেরিয়েবলের নামগুলি মোড়ানোর জন্য ব্যবহার করতে হবে:

<AssignMessage name="set-payload-3b">
  <Set>
    <Payload contentType="application/json" variablePrefix="@" variableSuffix="#">
      {"name":"foo", "type":"@variable_name#"}
    </Payload>
  </Set>
</AssignMessage>

এই পুরানো বাক্য গঠন এখনও কাজ করে।

<Payload> এর সামগ্রীটিকে বার্তা টেম্পলেট হিসাবে বিবেচনা করা হয়। এর অর্থ হ'ল অ্যাসাইনমেসেজ নীতিটি রানটাইমের সময় রেফারেন্সযুক্ত ভেরিয়েবলের মান সহ কোঁকড়ানো ধনুর্বন্ধনে মোড়ানো ভেরিয়েবলগুলি প্রতিস্থাপন করে।

নিম্নলিখিত উদাহরণটি পে -লোডের অংশটি একটি পরিবর্তনশীল মানতে সেট করতে কোঁকড়ানো ধনুর্বন্ধনী সিনট্যাক্স ব্যবহার করে:

<AssignMessage name="set-payload-4">
  <Set>
    <Payload contentType="text/xml">
      <root>
        <e1>sunday</e1>
        <e2>funday</e2>
        <e3>{var1}</e3>
      </root>
    </Payload>
  </Set>
</AssignMessage>

নিম্নলিখিত টেবিলটি <Payload> এর বৈশিষ্ট্যগুলি বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা উপস্থিতি টাইপ
contentType

যদি নির্দিষ্ট করা হয় তবে contentType মানটি Content-Type এইচটিটিপি শিরোনামে বরাদ্দ করা হয়।

ঐচ্ছিক স্ট্রিং
variablePrefix Ally চ্ছিকভাবে একটি প্রবাহ ভেরিয়েবলের শীর্ষস্থানীয় ডিলিমিটার নির্দিষ্ট করে। "{" এ ডিফল্ট। আরও তথ্যের জন্য, ফ্লো ভেরিয়েবল রেফারেন্স দেখুন। ঐচ্ছিক চর
variableSuffix Ally চ্ছিকভাবে প্রবাহের ভেরিয়েবলের উপর ট্রেলিং ডিলিমিটার নির্দিষ্ট করে। "}" এ ডিফল্ট। আরও তথ্যের জন্য, ফ্লো ভেরিয়েবল রেফারেন্স দেখুন। ঐচ্ছিক চর

<QueryParams> ( <Set> এর সন্তান)

নতুন মান সহ অনুরোধে বিদ্যমান ক্যোয়ারী পরামিতিগুলিকে ওভাররাইট করে। এই উপাদানটির কোনও প্রতিক্রিয়াতে কোনও প্রভাব নেই।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ <QueryParam> উপাদানগুলির অ্যারে
মূল উপাদান <Set>
শিশু উপাদান <QueryParam>

<QueryParams> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Set>
    <QueryParams>
      <QueryParam name="queryparam_name">queryparam_value</QueryParam>
      ...
    </QueryParams>
  </Set>
</AssignMessage>

নিম্নলিখিত উদাহরণটি request.header.address মানটিতে "ঠিকানা" ক্যোয়ারী প্যারামিটার সেট করে He

<AssignMessage name="AM-set-queryparams-1">  <Set>
    <QueryParams>
      <QueryParam name="address">{request.header.address}</QueryParam>
    </QueryParams>
  </Set>
</AssignMessage>

নিম্নলিখিত মানদণ্ডগুলি পূরণ করা হলে আপনি <QueryParams> ব্যবহার করতে পারেন:

  • Http ক্রিয়া: পান
  • বার্তার ধরণ: অনুরোধ

আপনি যদি আপনার নীতিমালায় খালি ক্যোয়ারী প্যারামিটারগুলি সংজ্ঞায়িত করেন ( <Set><QueryParams/></Set> ), নীতিটি কোনও ক্যোয়ারী প্যারামিটার সেট করে না। এটি <QueryParams> বাদ দেওয়ার মতোই।

<ReasonPhrase> ( <Set> এর সন্তান)

প্রতিক্রিয়াতে কারণ বাক্যাংশ সেট করে। এটি সাধারণত <StatusCode> এর সংমিশ্রণে ডিবাগিংয়ের জন্য করা হয়। এই উপাদানটির কোনও অনুরোধে কোনও প্রভাব নেই।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ স্ট্রিং
মূল উপাদান <Set>
শিশু উপাদান কোনোটিই নয়

<ReasonPhrase> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Set>
    <ReasonPhrase>reason_for_error or {variable}</ReasonPhrase>
  </Set>
</AssignMessage>

নিম্নলিখিত উদাহরণটি একটি সাধারণ কারণ বাক্যাংশ সংজ্ঞায়িত করে:

<AssignMessage name="set-reasonphrase-1">
  <Set>
    <ReasonPhrase>Bad medicine</ReasonPhrase>
  </Set>
  <AssignTo createNew="true" transport="http" type="response"/>
</AssignMessage>

<ReasonPhrase> এর সামগ্রীটিকে বার্তা টেম্পলেট হিসাবে বিবেচনা করা হয়। এর অর্থ হ'ল কোঁকড়ানো ধনুর্বন্ধনে আবৃত একটি পরিবর্তনশীল নামটি রেফারেন্সযুক্ত ভেরিয়েবলের মান সহ রানটাইমে প্রতিস্থাপন করা হবে, নিম্নলিখিত উদাহরণটি দেখায়:

<AssignMessage name="AM-set-reasonphrase-2">
  <Set>
    <ReasonPhrase>{calloutresponse.reason.phrase}</ReasonPhrase>
  </Set>
  <AssignTo>response</AssignTo>
</AssignMessage>

আপনি যখন নিম্নলিখিত মানদণ্ডগুলি পূরণ করেন তখনই আপনি <ReasonPhrase> ব্যবহার করতে পারেন:

  • বার্তার ধরণ: প্রতিক্রিয়া

<StatusCode> ( <Set> এর সন্তান)

প্রতিক্রিয়াতে স্থিতি কোড সেট করে। এই উপাদানটির কোনও অনুরোধে কোনও প্রভাব নেই।

ডিফল্ট মান '200' (যখন <AssignTo> এর createNew বৈশিষ্ট্যটি 'সত্য' তে সেট করা আছে)
প্রয়োজন? ঐচ্ছিক
টাইপ স্ট্রিং বা variable
মূল উপাদান <Set>
শিশু উপাদান কোনোটিই নয়

<StatusCode> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Set>
    <StatusCode>HTTP_status_code or {variable}</StatusCode>
  </Set>
</AssignMessage>

নিম্নলিখিত উদাহরণটি একটি সাধারণ স্থিতি কোড সেট করে:

<AssignMessage name="AM-set-statuscode-404">
  <Set>
    <StatusCode>404</StatusCode>
  </Set>
  <AssignTo>response</AssignTo>
</AssignMessage>

<StatusCode> এর সামগ্রীটিকে বার্তা টেম্পলেট হিসাবে বিবেচনা করা হয়। এর অর্থ হ'ল কোঁকড়ানো ধনুর্বন্ধনে আবৃত একটি পরিবর্তনশীল নামটি রেফারেন্সযুক্ত ভেরিয়েবলের মান সহ রানটাইমে প্রতিস্থাপন করা হবে, নিম্নলিখিত উদাহরণটি দেখায়:

<AssignMessage name="set-statuscode-2">
  <Set>
    <StatusCode>{calloutresponse.status.code}</StatusCode>
  </Set>
  <AssignTo>response</AssignTo>
</AssignMessage>

নিম্নলিখিত মানদণ্ডগুলি পূরণ করা হলে আপনি <StatusCode> ব্যবহার করতে পারেন:

  • বার্তার ধরণ: প্রতিক্রিয়া

<Verb> ( <Set> এর সন্তান)

অনুরোধে HTTP ক্রিয়া সেট করে। এই উপাদানটির কোনও প্রতিক্রিয়াতে কোনও প্রভাব নেই।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ স্ট্রিং বা variable
মূল উপাদান <Set>
শিশু উপাদান কোনোটিই নয়

<Verb> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Set>
    <Verb>[GET|POST|PUT|PATCH|DELETE|{variable}]</Verb>
  </Set>
</AssignMessage>

নিম্নলিখিত উদাহরণটি অনুরোধে একটি সাধারণ ক্রিয়া সেট করে:

<AssignMessage name="AM-set-verb-1">
  <Set>
    <Verb>POST</Verb>
  </Set>
  <AssignTo>request</AssignTo>
</AssignMessage>

<Verb> এর সামগ্রীটিকে বার্তা টেম্পলেট হিসাবে বিবেচনা করা হয়। এর অর্থ কোঁকড়ানো ধনুর্বন্ধনে আবৃত একটি পরিবর্তনশীল নাম রেফারেন্সযুক্ত ভেরিয়েবলের মান সহ রানটাইমে প্রতিস্থাপন করা হবে।

নিম্নলিখিত উদাহরণটি একটি ক্রিয়াটি পপুলেট করতে একটি ভেরিয়েবল ব্যবহার করে:

<AssignMessage name="AM-set-verb-to-dynamic-value">
  <Set>
    <Verb>{my_variable}</Verb>
  </Set>
  <AssignTo>request</AssignTo>
</AssignMessage>

নিম্নলিখিত মানদণ্ডগুলি পূরণ করা হলে আপনি <Verb> ব্যবহার করতে পারেন:

  • বার্তার ধরণ: অনুরোধ

<Version> ( <Set> এর সন্তান)

একটি অনুরোধে এইচটিটিপি সংস্করণ সেট করে। এই উপাদানটির কোনও প্রতিক্রিয়াতে কোনও প্রভাব নেই।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ স্ট্রিং বা variable
মূল উপাদান <Set>
শিশু উপাদান কোনোটিই নয়

<Version> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<AssignMessage
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="policy_name" >
  <Set>
    <Version>[1.0|1.1|{variable}]</Verb>
  </Set>
</AssignMessage>

নিম্নলিখিত উদাহরণটি সংস্করণ নম্বরটি "1.1" এ সেট করে:

<AssignMessage name="AM-set-version-1">
  <Set>
    <Version>1.1</Version>
  </Set>
 </AssignMessage>

সংস্করণ নম্বরটি সেট করতে নিম্নলিখিত কোঁকড়ানো ধনুর্বন্ধনীগুলিতে একটি ভেরিয়েবল ব্যবহার করে:

<AssignMessage name="AM-set-version-2">
  <Set>
    <Version>{my_version}</Version>
  </Set>
  <AssignTo>request</AssignTo>
</AssignMessage>

<Version> এর সামগ্রীটিকে বার্তা টেম্পলেট হিসাবে বিবেচনা করা হয়। এর অর্থ কোঁকড়ানো ধনুর্বন্ধনে আবৃত একটি পরিবর্তনশীল নাম রেফারেন্সযুক্ত ভেরিয়েবলের মান সহ রানটাইমে প্রতিস্থাপন করা হবে।

আপনি কেবল <Version> ব্যবহার করতে পারেন যখন নিম্নলিখিত মানদণ্ডগুলি পূরণ করা হয়:

  • বার্তার ধরণ: অনুরোধ

নিম্নলিখিত উদাহরণটি বরাদ্দ বার্তা সহ একটি কাস্টম অনুরোধ অবজেক্ট তৈরি করে:

<AssignMessage name="AssignMessage-3">
  <AssignTo createNew="true" type="request">MyCustomRequest</AssignTo>
  <Copy>
    <Headers>
     <Header name="user-agent"/>
    </Headers>
  </Copy>
  <Set>
    <QueryParams>
      <QueryParam name="address">{request.queryparam.addy}</QueryParam>
    </QueryParams>
    <Verb>GET</Verb>
  </Set>
  <IgnoreUnresolvedVariables>false
  </IgnoreUnresolvedVariables>
</AssignMessage>

এই উদাহরণ:

  • "মাইকাস্টোমরেকোয়েস্ট" নামে একটি নতুন অনুরোধ বার্তা অবজেক্ট তৈরি করে।
  • মাইকাস্টোমরেকুয়েস্টে, এই নীতি:
    • নতুন বার্তায় আগত অনুরোধ থেকে user-agent এইচটিটিপি শিরোনামের মানটি অনুলিপি করে। যেহেতু <Copy> user-agent ফ্লো ভেরিয়েবলের জন্য একটি নিখুঁত রেফারেন্স ব্যবহার করে, <Copy>source বৈশিষ্ট্যটি নির্দিষ্ট করার দরকার নেই।
    • আগত অনুরোধের addy ক্যোয়ারী প্যারামিটারের মানকে কাস্টম বার্তায় address ক্যোয়ারী প্যারামিটার সেট করে।
    • GET HTTP ক্রিয়া সেট করে।
  • সেটগুলি <IgnoreUnresolvedVariables> "মিথ্যা" থেকে। যখন <IgnoreUnresolvedVariables> "মিথ্যা" হয়, যদি নীতিটি যুক্ত করার চেষ্টা করে এমন কোনও একটি ভেরিয়েবলগুলির অস্তিত্ব না থাকে, তবে এজ এপিআই প্রবাহে প্রক্রিয়াজাতকরণ বন্ধ করে দেবে।