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

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

কি

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

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

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

AssignMessage নীতি নিম্নলিখিত চাইল্ড উপাদানগুলির সাথে ফ্লো ভেরিয়েবল তৈরি বা পরিবর্তন করতে পারে:

<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 নীতি নীতি ব্যবহার করতে পারেন:

1: হেডার যোগ করুন

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

<AssignMessage continueOnError="false" enabled="true" name="add-headers-1">
  <Add>
    <Headers>
      <Header name="user-agent">{request.user.agent}</Header>
    </Headers>
  </Add>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

2: পেলোড সরান

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

<AssignMessage continueOnError="false" enabled="true" name="remove-1">
  <DisplayName>remove-1</DisplayName>
  <Remove>
    <Payload>true</Payload>
  </Remove>
  <AssignTo createNew="false" transport="http" type="response"/>
</AssignMessage>

3: প্রতিক্রিয়া পরিবর্তন করুন

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

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

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

কারণ এই উদাহরণটি <AssignTo> এলিমেন্টে একটি পরিবর্তনশীল নাম বাদ দেয় এবং type "প্রতিক্রিয়া" হিসাবে নির্দিষ্ট করে, এই নীতিটি লক্ষ্য সার্ভার দ্বারা প্রত্যাবর্তিত প্রতিক্রিয়া বস্তুটিকে পরিবর্তন করে৷

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

4: গতিশীল বিষয়বস্তু সেট করুন

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

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

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

<AssignMessage name="set-dynamic-content">
  <AssignTo createNew="false" type="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 অনুযায়ী, আপনি ভেরিয়েবল সন্নিবেশ করার জন্য কোঁকড়া ধনুর্বন্ধনীও ব্যবহার করতে পারেন।

5: ক্যোয়ারী প্যারাম সরান

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

<AssignMessage name="remove-query-param">
  <Remove>
    <QueryParams>
      <QueryParam name="apikey"/>
    </QueryParams>
  </Remove>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

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

6: ভেরিয়েবল সেট/গেট করুন

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

  1. স্ট্যাটিক মান সহ অনুরোধে তিনটি ফ্লো ভেরিয়েবল তৈরি করে
  2. অনুরোধের প্রবাহে একটি দ্বিতীয় নীতিতে গতিশীলভাবে ফ্লো ভেরিয়েবল পায়
  3. তাদের প্রতিক্রিয়ার পেলোডে সেট করে
<!-- Policy #1: Set variables in the request -->
<AssignMessage continueOnError="false" enabled="true" name="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>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"/>
</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>

7: পরিষেবা কলআউট প্রতিক্রিয়া শিরোনাম পান

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

<AssignMessage continueOnError="false" enabled="true" name="get-header">
  <Set>
    <Payload contentType="application/json">
      {"Cookies from Service Callout":" {calloutResponse.header.Set-Cookie.2}"}
    </Payload>
  </Set>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <AssignTo createNew="false" transport="http" type="request"/>
</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>

উদাহরণ 1

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

<AssignMessage continueOnError="false" enabled="true" name="add-formparams-3">
  <Add>
    <FormParams>
      <FormParam name="name">{request.queryparam.name}</FormParam>
      <FormParam name="zip">{request.queryparam.zipCode}</FormParam>
      <FormParam name="lang">{request.queryparam.lang}</FormParam>
    </FormParams>
  </Add>
  <AssignTo transport="http" type="request"/>
</AssignMessage>

উদাহরণ 2

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

<AssignMessage continueOnError="false" enabled="true" name="add-headers-1">
  <Add>
    <Headers>
      <Header name="user-agent">{request.user.agent}</Header>
    </Headers>
  </Add>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

উদাহরণ 3

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

<AssignMessage continueOnError="false" enabled="true" name="add-queryparams-1">
  <Add>
    <QueryParams>
      <QueryParam name="myParam">42</QueryParam>
    </QueryParams>
  </Add>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

এই উদাহরণ অনুরোধ প্রিফ্লোতে <Add> ব্যবহার করে। আপনি যদি ট্রেস টুলের মতো একটি টুলে ফলাফলগুলি দেখেন, তাহলে "http://httpbin.org/get" করার অনুরোধটি "http://httpbin.org/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>

উদাহরণ 1

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

<AssignMessage continueOnError="false" enabled="true" name="add-formparams-1">
  <Add>
    <FormParams>
      <FormParam name="answer">42</FormParam>
    </FormParams>
  </Add>
  <AssignTo transport="http" type="request"></AssignTo>
</AssignMessage>

উদাহরণ 2

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

<AssignMessage continueOnError="false" enabled="true" name="add-formparams-2">
  <Add>
    <FormParam name="name">{request.queryparam.name}</FormParam>
  </Add>
</AssignMessage>

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

উদাহরণ 3

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

<AssignMessage continueOnError="false" enabled="true" name="add-formparams-3">
  <Add>
    <FormParams>
      <FormParam name="name">{request.queryparam.name}</FormParam>
      <FormParam name="zip">{request.queryparam.zipCode}</FormParam>
      <FormParam name="lang">{request.queryparam.lang}</FormParam>
    </FormParams>
  </Add>
  <AssignTo transport="http" type="request"/>
</AssignMessage>

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

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

%7Busername%7D=nick&%7Bzip_code%7D=90210&%7Bdefault_language%7D=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>

উদাহরণ 1

নিম্নলিখিত উদাহরণটি অনুরোধ বার্তায় user-agent শিরোনাম যোগ করে এবং সেই শিরোলেখটিতে request.user.agent ফ্লো ভেরিয়েবলের মান নির্ধারণ করে।

<AssignMessage continueOnError="false" enabled="true" name="add-headers-1">
  <Add>
    <Headers>
      <Header name="user-agent">{request.user.agent}</Header>
    </Headers>
  </Add>
  <AssignTo createNew="false" transport="http" type="request"/>
</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>

উদাহরণ 1

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

<AssignMessage continueOnError="false" enabled="true" name="add-queryparams-1">
  <Add>
    <QueryParams>
      <QueryParam name="myParam">42</QueryParam>
    </QueryParams>
  </Add>
  <AssignTo createNew="false" transport="http" type="request"/>
</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> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

সিনট্যাক্স

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

উদাহরণ 1

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

<AssignMessage name="assignto-1">
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

createNew তে "false" (ডিফল্ট) সেট করে, এই উদাহরণটি একটি নতুন অনুরোধ তৈরি করে না। এই নীতির সমস্ত ক্রিয়াকলাপ মূল অনুরোধকে প্রভাবিত করে।

উদাহরণ 2

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

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

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

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

উদাহরণ 3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<AssignVariable>

একটি গন্তব্য প্রবাহ ভেরিয়েবলে একটি মান বরাদ্দ করে (যেমন, একটি ভেরিয়েবল যার মান AssignMessage নীতি দ্বারা সেট করা হয়)। যদি ফ্লো ভেরিয়েবল বিদ্যমান না থাকে, তাহলে <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> সংজ্ঞায়িত করেন, তবে এটি অন্যান্য চাইল্ড উপাদানগুলির চেয়ে অগ্রাধিকার নেয়।

উদাহরণ 1

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

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

উদাহরণ 2

নিম্নলিখিত উদাহরণটি গন্তব্য ফ্লো ভেরিয়েবল 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> সেগুলি তৈরি করে।

উদাহরণ 3

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

<AssignMessage name='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>

উদাহরণ 1

নিম্নলিখিত উদাহরণটি 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>

উদাহরণ 1

নিম্নোক্ত উদাহরণটি গন্তব্য ফ্লো ভেরিয়েবল 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>

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

উদাহরণ 2

নিম্নোক্ত উদাহরণটি গন্তব্য ফ্লো ভেরিয়েবল 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" মান নির্ধারণ করে।

উদাহরণ 3

<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> উপাদান অ্যাপের কাস্টম অ্যাট্রিবিউট থেকে মেসেজ টেমপ্লেট ব্যবহার করতে পারে, যা নিরাপত্তা নীতি থেকে একটি ফ্লো ভেরিয়েবল হিসেবে পাওয়া যায়। নিম্নলিখিত উদাহরণটি অনুমান করে যে বার্তা টেমপ্লেটটি API কল করার ডেভেলপার অ্যাপে message_template নামক একটি গ্রাহক বৈশিষ্ট্যে উপলব্ধ, যেখানে অ্যাপের API কী যাচাই করতে VerifyAPIKey নীতি ব্যবহার করা হয়েছিল:

<AssignVariable ref='verifyapikey.myVerifyAPIKeyPolicy.app.name.message_template'/>

ডিফল্ট মান 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>

উদাহরণ 1

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

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

উদাহরণ 2

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

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

  </AssignVariable>
</AssignMessage>

উদাহরণ 3

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

<AssignMessage name='template-2'>
  <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>

উদাহরণ 1

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

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

উদাহরণ 2

নিম্নোক্ত উদাহরণটি ফ্লো ভেরিয়েবল 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> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

সিনট্যাক্স

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

উদাহরণ 1

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

<AssignMessage continueOnError="false" enabled="true" name="copy-1">
  <Copy source="request">
    <Headers>
      <Header name="Header_Name_1">Header value 1</Header>
    </Headers>
    <FormParams>
      <FormParam name="Form_Param_Name_1">Form param value 1</FormParam>
      <FormParam name="Form_Param_Name_2">Form param value 1</FormParam>
      <FormParam name="Form_Param_Name_3">Form param value 1</FormParam>
    </FormParams>
    <Payload>false</Payload>
    <Path>true</Path>
    <QueryParams/>
    <ReasonPhrase>false</ReasonPhrase>
    <StatusCode>false</StatusCode>
    <Verb>false</Verb>
    <Version>false</Version>
  </Copy>
  <AssignTo createNew="true" transport="http" type="request"/>
</AssignMessage>

<Copy> উপাদানটির নিম্নলিখিত বৈশিষ্ট্য রয়েছে:

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

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

  • source নির্দিষ্ট না হলে, এটি একটি সাধারণ বার্তা হিসাবে বিবেচিত হয়। উদাহরণস্বরূপ, যদি নীতিটি অনুরোধের প্রবাহে থাকে, তাহলে উৎসটি request অবজেক্টে ডিফল্ট হয়। নীতিটি প্রতিক্রিয়া প্রবাহে থাকলে, এটি response অবজেক্টে ডিফল্ট হয়। আপনি source বাদ দিলে, আপনি অনুলিপির উৎস হিসাবে একটি ফ্লো ভেরিয়েবলের একটি পরম রেফারেন্স ব্যবহার করতে পারেন। উদাহরণস্বরূপ, মানটিকে {request.header.user-agent} হিসাবে উল্লেখ করুন।
  • যদি সোর্স ভেরিয়েবলটি সমাধান করা না যায়, বা একটি নন-মেসেজ টাইপের সমাধান করা হয়, <Copy> সাড়া দিতে ব্যর্থ হয়।
ঐচ্ছিক স্ট্রিং

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

অনুলিপিগুলি <AssignTo> উপাদান দ্বারা নির্দিষ্ট অনুরোধের জন্য <Copy> উপাদানের 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>

উদাহরণ 1

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে কাস্টম অনুরোধ "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>

উদাহরণ 2

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

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

উদাহরণ 3

নিম্নলিখিত উদাহরণটি কাস্টম অনুরোধ "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>

উদাহরণ 4

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

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

উদাহরণ 1

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে নতুন, কাস্টম অনুরোধ অবজেক্টে 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>

উদাহরণ 2

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

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

উদাহরণ 3

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

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

উদাহরণ 1

নিম্নলিখিত উদাহরণটি নির্দেশ করে যে 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>

উদাহরণ 1

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

<AssignMessage name="copy-payload-1">
  <Copy source="request">
    <Payload>true</Payload>
  </Copy>
  <AssignTo createNew="true" transport="http" type="response"/>
</AssignMessage>

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

<AssignTo> এলিমেন্টের দ্বারা নির্দিষ্ট করা অনুরোধে <Copy> উপাদানের 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>

উদাহরণ 1

নিম্নলিখিত উদাহরণটি অনুরোধ থেকে "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>

উদাহরণ 2

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

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

উদাহরণ 3

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

<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> এর সন্তান)

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

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

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

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

সিনট্যাক্স

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

উদাহরণ 1

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

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

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

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

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

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

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

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

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

সিনট্যাক্স

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

উদাহরণ 1

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

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

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

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

<StatusCode> -এর একটি সাধারণ ব্যবহার হল নিশ্চিত করা যে প্রক্সি প্রতিক্রিয়া লক্ষ্য থেকে প্রাপ্ত প্রতিক্রিয়ার মতো একই স্থিতি আছে যখন <AssignTo> -এর createNew বৈশিষ্ট্য "সত্য" তে সেট করা থাকে।

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

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

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

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

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

সিনট্যাক্স

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

উদাহরণ 1

নিম্নলিখিত উদাহরণটি <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> এর সন্তান)

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

যদি "true" হয়, তাহলে <AssignTo> এলিমেন্ট দ্বারা নির্দিষ্ট করা বস্তুতে <Copy> উপাদানের source অ্যাট্রিবিউটে পাওয়া HTTP সংস্করণটি কপি করে।

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

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

সিনট্যাক্স

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

উদাহরণ 1

নিম্নলিখিত উদাহরণটি অনুরোধে <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

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

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

সিনট্যাক্স

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

উদাহরণ 1

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

<AssignMessage name="ignoreunresolvedvariables">
  <Copy source="response">
    ...
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  </Copy>
</AssignMessage>

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

উদাহরণ 1

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

<AssignMessage continueOnError="false" enabled="true" name="remove-1">
  <DisplayName>remove-1</DisplayName>
  <Remove>
    <Payload>true</Payload>
  </Remove>
  <AssignTo createNew="false" transport="http" type="response"/>
</AssignMessage>

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

উদাহরণ 2

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

<AssignMessage continueOnError="false" enabled="true" name="remove-2">
  <Remove>
    <!-- Empty (<FormParams/>) removes all form parameters -->
    <FormParams/>
    <QueryParams>
      <QueryParam name="qp1"/>
    </QueryParams>
  </Remove>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

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

উদাহরণ 1

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

<AssignMessage name="remove-formparams-1">
  <Remove>
    <FormParams>
      <FormParam name="form_param_1"/>
      <FormParam name="form_param_2"/>
      <FormParam name="form_param_3"/>
    </FormParams>
  </Remove>
  <AssignTo createNew="false" transport="http" type="application/x-www-form-urlencoded"/>
</AssignMessage>

উদাহরণ 2

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

<AssignMessage name="remove-formparams-2">
  <Remove>
    <FormParams/>
  </Remove>
  <AssignTo createNew="false" transport="http" type="application/x-www-form-urlencoded"/>
</AssignMessage>

উদাহরণ 3

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

<AssignMessage name="remove-formparams-3">
  <Remove>
    <FormParams>
      <FormParam name="f1"/>
      <FormParam name="f2"/>
      <FormParam name="f3.2"/>
    </FormParams>
  </Remove>
  <AssignTo createNew="false" transport="http" type="application/x-www-form-urlencoded"/>
</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>

উদাহরণ 1

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

<AssignMessage name="remove-headers-1">
  <Remove>
    <Headers>
      <Header name="user-agent"/>
    </Headers>
  </Remove>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

উদাহরণ 2

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

<AssignMessage name="remove-headers-2">
  <Remove>
    <Headers/>
  </Remove>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

উদাহরণ 3

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

<AssignMessage name="remove-headers-3">
  <Remove>
    <Headers>
      <Header name="h1"/>
      <Header name="h2"/>
      <Header name="h3.2"/>
    </Headers>
  </Remove>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

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

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

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

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

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

সিনট্যাক্স

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

উদাহরণ 1

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

<AssignMessage name="remove-payload-1">
  <Remove>
    <Payload>true</Payload>
  </Remove>
  <AssignTo createNew="false" transport="http" type="request"/>
</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>

উদাহরণ 1

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

<AssignMessage name="remove-queryparams-1">
  <Remove>
      <QueryParams>
        <QueryParam name="qp1"/>
      </QueryParams>
  </Remove>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

উদাহরণ 2

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

<AssignMessage name="remove-queryparams-2">
  <Remove>
      <QueryParams/>
  </Remove>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

উদাহরণ 3

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

<AssignMessage name="remove-queryparams-3">
  <Remove>
      <QueryParams>
        <QueryParam name="qp1"/>
        <QueryParam name="qp2"/>
        <QueryParam name="qp3.2"/>
      </QueryParams>
  </Remove>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

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

উদাহরণ 4

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

<AssignMessage name="remove-query-param">
  <Remove>
    <QueryParams>
      <QueryParam name="apikey"/>
    </QueryParams>
  </Remove>
  <AssignTo createNew="false" transport="http" type="request"/>
</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>

উদাহরণ 1

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

<AssignMessage continueOnError="false" enabled="true" name="set-1">
  <Set>
    <FormParams>
      <FormParam name="myparam">{request.header.myparam}</FormParam>
    </FormParams>
    <Headers>
        <Header name="user-agent">{request.header.user-agent}</Header>
    </Headers>
    <QueryParams>
      <QueryParam name="name">{request.header.name}</QueryParam>
      <QueryParam name="address">{request.header.address}</QueryParam>
    </QueryParams>
    <!-- <Verb>GET</Verb> -->
    <Payload contentType="text/plain">42</Payload>
    <Path/>
    <ReasonPhrase>Bad request</ReasonPhrase>
    <StatusCode>400</StatusCode>
    <Verb>POST</Verb>
    <Verb>{my_variable}</Verb>
    <Version>1.1</Version>
  </Set>
  <AssignTo createNew="false" transport="http" type="response"/>
</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>

উদাহরণ 1

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

<AssignMessage name="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>

উদাহরণ 1

নিম্নলিখিত উদাহরণটি user-agent শিরোনামটি request.header.user-agent মানকে সেট করে He

<AssignMessage name="set-headers-1">
  <Set>
    <Headers>
      <Header name="user-agent">{request.header.user-agent}</Header>
    </Headers>
  </Set>
  <AssignTo createNew="true" transport="http" type="response"/>
</AssignMessage>

আপনি যদি আপনার নীতিমালায় খালি শিরোনামগুলি সংজ্ঞায়িত করেন ( <Add><Headers/></Add> ), নীতিটি কোনও শিরোনাম যুক্ত করে না। এটি <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>

উদাহরণ 1

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

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

উদাহরণ 2

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

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

উদাহরণ 3

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

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

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

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

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

উদাহরণ 4

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

উদাহরণ 1

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

<AssignMessage continueOnError="false" enabled="true" name="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>

উদাহরণ 1

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

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

উদাহরণ 2

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

<AssignMessage name="set-reasonphrase-2">
  <Set>
    <ReasonPhrase>{calloutresponse.reason.phrase}</ReasonPhrase>
  </Set>
  <AssignTo createNew="true" transport="http" type="response"/>
</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>

উদাহরণ 1

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

<AssignMessage name="set-statuscode-1">
  <Set>
    <StatusCode>404</StatusCode>
  </Set>
  <AssignTo createNew="true" transport="http" type="response"/>
</AssignMessage>

উদাহরণ 2

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

<AssignMessage name="set-statuscode-2">
  <Set>
    <StatusCode>{calloutresponse.status.code}</StatusCode>
  </Set>
  <AssignTo createNew="true" transport="http" type="response"/>
</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>

উদাহরণ 1

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

<AssignMessage name="set-verb-1">
  <Set>
    <Verb>POST</Verb>
  </Set>
  <AssignTo createNew="true" transport="http" type="request"/>
</AssignMessage>

উদাহরণ 2

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

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

<AssignMessage name="set-verb-2">
  <Set>
    <Verb>{my_variable}</Verb>
  </Set>
  <AssignTo createNew="true" transport="http" type="request"/>
</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.1" এ সেট করে:

<AssignMessage name="set-version-1">
  <Set>
    <Version>1.1</Version>
  </Set>
  <AssignTo createNew="true" transport="http" type="request"/>
</AssignMessage>

উদাহরণ 2

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

<AssignMessage name="set-version-2">
  <Set>
    <Version>{my_version}</Version>
  </Set>
  <AssignTo createNew="true" transport="http" type="request"/>
</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> "মিথ্যা" হয়, যদি নীতিটি যুক্ত করার চেষ্টা করে এমন কোনও একটি ভেরিয়েবলগুলির অস্তিত্ব না থাকে, তবে এজ এপিআই প্রবাহে প্রক্রিয়াজাতকরণ বন্ধ করে দেবে।