এক্সট্রাক্ট ভেরিয়েবল নীতি

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

কী

ExtractVariables পলিসিটি কোনো রিকোয়েস্ট বা রেসপন্স থেকে কন্টেন্ট এক্সট্র্যাক্ট করে এবং সেই কন্টেন্টকে একটি ভ্যারিয়েবলের মান হিসেবে সেট করে। আপনি মেসেজের যেকোনো অংশ এক্সট্র্যাক্ট করতে পারেন, যার মধ্যে হেডার, URI পাথ, JSON/XML পেলোড, ফর্ম প্যারামিটার এবং কোয়েরি প্যারামিটার অন্তর্ভুক্ত। এই পলিসিটি মেসেজ কন্টেন্টের উপর একটি টেক্সট প্যাটার্ন প্রয়োগ করে কাজ করে এবং কোনো মিল খুঁজে পেলে, নির্দিষ্ট মেসেজ কন্টেন্ট দিয়ে একটি ভ্যারিয়েবল সেট করে দেয়।

যদিও আপনি প্রায়শই কোনো অনুরোধ বা প্রতিক্রিয়া বার্তা থেকে তথ্য বের করার জন্য এই পলিসিটি ব্যবহার করেন, তবে আপনি এটি অন্যান্য উৎস থেকেও তথ্য বের করতে ব্যবহার করতে পারেন, যার মধ্যে AccessEntity পলিসি দ্বারা তৈরি এনটিটি, XML অবজেক্ট বা JSON অবজেক্ট অন্তর্ভুক্ত।

নির্দিষ্ট বার্তার বিষয়বস্তু বের করার পর, আপনি অনুরোধ ও প্রতিক্রিয়া প্রক্রিয়াকরণের অংশ হিসেবে অন্যান্য পলিসিতে ভেরিয়েবলটি উল্লেখ করতে পারেন।

ভিডিও

ExtractVariables পলিসি সম্পর্কে আরও জানতে নিম্নলিখিত ভিডিওগুলো দেখুন।

ভিডিও বর্ণনা
XML পেলোড থেকে ভেরিয়েবল বের করুন এক্সট্র্যাক্ট ভ্যারিয়েবল পলিসি ব্যবহার করে একটি এক্সএমএল পেলোড থেকে ভ্যারিয়েবল এক্সট্র্যাক্ট করুন।
JSON পেলোড থেকে ভেরিয়েবল বের করুন এক্সট্র্যাক্ট ভ্যারিয়েবল পলিসি ব্যবহার করে একটি JSON পেলোড থেকে ভ্যারিয়েবলগুলো বের করুন।
প্যারামিটার থেকে ভেরিয়েবল বের করুন কোয়েরি, হেডার, ফর্ম বা ইউআরআই প্যারামিটারের মতো প্যারামিটারগুলো থেকে ভেরিয়েবল বের করুন।
বহু-মান পরামিতি থেকে ভেরিয়েবল বের করুন বহু-মান পরামিতি থেকে চলক নিষ্কাশন করুন।
কোয়েরি প্যারামিটার থেকে ভেরিয়েবল বের করুন (ক্লাসিক এজ) ক্লাসিক এজ UI ব্যবহার করে কোয়েরি প্যারামিটার থেকে ভেরিয়েবল বের করুন।
XML বা JSON পেলোড থেকে ভেরিয়েবল বের করুন (ক্লাসিক এজ) ক্লাসিক এজ UI ব্যবহার করে XML বা JSON পেলোড থেকে ভেরিয়েবল বের করুন।

নমুনা

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

গিটহাব

এই লিঙ্কগুলো কার্যকরী এপিআই প্রক্সি স্যাম্পলের দিকে নির্দেশ করে, যা আপনি Edge-এ ডেপ্লয় ও রান করতে পারবেন। এগুলো ExtractVariables ব্যবহার করে এবং GitHub-এ Apigee-র api-platform-samples রিপোজিটরিতে অবস্থিত। README-গুলোতে ব্যাখ্যা করা আছে যে প্রতিটি ক্ষেত্রে ExtractVariables কীভাবে ব্যবহৃত হয় এবং প্রতিটি স্যাম্পল কীভাবে ডেপ্লয় ও রান করতে হয়।

ইউআরআই

<ExtractVariables name="ExtractVariables-1">
   <DisplayName>Extract a portion of the url path</DisplayName>
   <Source>request</Source>
   <URIPath>
      <Pattern ignoreCase="true">/accounts/{id}</Pattern>
   </URIPath>
   <VariablePrefix>urirequest</VariablePrefix>
   <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

উপরের নমুনা পলিসি কোডটি বিবেচনা করুন। <URIPath> এলিমেন্টটি ExtractVariables পলিসিকে URI পাথ থেকে তথ্য এক্সট্র্যাক্ট করতে নির্দেশ দেয়। <Pattern> এলিমেন্টটি URI পাথে প্রয়োগ করার জন্য প্যাটার্নটি নির্দিষ্ট করে। প্যাটার্নটিকে একটি সাধারণ টেমপ্লেট হিসেবে গণ্য করা হয়, যেখানে কার্লি ব্র্যাকেটগুলো URI পাথের পরিবর্তনশীল অংশকে নির্দেশ করে।

যে ভেরিয়েবলটি সেট করা হবে তার নাম <VariablePrefix> এলিমেন্টে নির্দিষ্ট করা মান এবং <Pattern> এলিমেন্টে কার্লি ব্র্যাকেট {} এর মধ্যে থাকা মান দ্বারা নির্ধারিত হয়। এই দুটি মানকে মাঝখানে একটি ডট দিয়ে যুক্ত করা হয়, যার ফলে উদাহরণস্বরূপ urirequest.id এর মতো একটি ভেরিয়েবলের নাম তৈরি হয়। যদি কোনো <VariablePrefix> এলিমেন্ট না থাকে, তাহলে ভেরিয়েবলের নামটি কেবল কার্লি ব্র্যাকেটের মধ্যে থাকা মানটিই হয়।

উপরের নমুনা পলিসি কোডটি নিম্নলিখিত আগত অনুরোধের সাথে কাজ করছে বলে বিবেচনা করুন:

GET http://org1-test.apigee.net/svc1/accounts/12797282

ধরা যাক, এপিআই প্রক্সির বেসপাথ হলো /svc1 । যখন Apigee Edge এই আগত অনুরোধের উপর উপরের ExtractVariables পলিসি কোডটি প্রয়োগ করে, তখন এটি urirequest.id ভেরিয়েবলটির মান 12797282 সেট করে। Apigee Edge পলিসিটি কার্যকর করার পর, প্রসেসিং ফ্লো-এর পরবর্তী পলিসি বা কোড urirequest.id নামের ভেরিয়েবলটি থেকে 12797282 স্ট্রিং মানটি পেতে পারে।

উদাহরণস্বরূপ, নিম্নলিখিত AssignMessage পলিসিটি একটি নতুন অনুরোধ বার্তার পেলোডে সেই ভেরিয়েবলের মান এম্বেড করে:

<AssignMessage async="false" continueOnError="false" enabled="true" name="AssignPayload">
 <DisplayName>AssignPayload</DisplayName>
  <Set>
   <Payload contentType="text/xml">
    <IdExtractedFromURI>{urirequest.id}</IdExtractedFromURI>
   </Payload>
  </Set>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <AssignTo createNew="true" transport="http" type="request">newRequest</AssignTo>
</AssignMessage>

কোয়েরি প্যারামিটার

<ExtractVariables name="ExtractVariables-2">
   <DisplayName>Extract a value from a query parameter</DisplayName>
   <Source>request</Source>
   <QueryParam name="code">
      <Pattern ignoreCase="true">DBN{dbncode}</Pattern>
   </QueryParam>
   <VariablePrefix>queryinfo</VariablePrefix>
   <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

উপরের নমুনা পলিসি কোডটি নিম্নলিখিত আগত অনুরোধের সাথে কাজ করছে বলে বিবেচনা করুন:

GET http://org1-test.apigee.net/accounts/12797282?code=DBN88271

যখন Apigee Edge এই আগত অনুরোধটিতে উপরের ExtractVariables পলিসি কোডটি প্রয়োগ করে, তখন এটি queryinfo.dbncode ভেরিয়েবলটির মান 88271 সেট করে। Apigee Edge পলিসিটি কার্যকর করার পর, প্রসেসিং ফ্লো-এর পরবর্তী পলিসি বা কোড queryinfo.dbncode নামের ভেরিয়েবলটি থেকে 88271 স্ট্রিং ভ্যালুটি পেতে পারে।

আপনি এখন আপনার প্রক্সিতে queryinfo.dbncode ভেরিয়েবলটি অ্যাক্সেস করতে পারবেন। উদাহরণস্বরূপ, নিম্নলিখিত AssignMessage পলিসিটি এটিকে রিকোয়েস্টের পেলোডে কপি করে:

<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath">
 <DisplayName>GetQP</DisplayName>
  <Set>
   <Payload contentType="text/xml">
    <ExtractQP>{queryinfo.dbncode}</ExtractQP>
   </Payload>
  </Set>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

একাধিক প্যারামিটার

<ExtractVariables name="ExtractVariables-2">
   <DisplayName>Extract a value from a query parameter</DisplayName>
   <Source>request</Source>
   <QueryParam name="w">
      <Pattern ignoreCase="true">{firstWeather}</Pattern>
   </QueryParam>
   <QueryParam name="w.2">
     <Pattern ignoreCase="true">{secondWeather}</Pattern>
   </QueryParam>
   <VariablePrefix>queryinfo</VariablePrefix>
 <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

ধরা যাক, আপনার এপিআই ডিজাইন আপনাকে একই নামের একাধিক কোয়েরি প্যারামিটার নির্দিষ্ট করার সুযোগ দেয়। আপনি এই পলিসি ব্যবহার করে 'w' কোয়েরি প্যারামিটারের একাধিক ইনস্ট্যান্সের মান বের করতে পারেন। ExtractVariables পলিসিতে এই কোয়েরি প্যারামিটারগুলোকে রেফারেন্স করার জন্য, আপনি ইনডেক্স ব্যবহার করেন, যেখানে কোয়েরি প্যারামিটারের প্রথম ইনস্ট্যান্সটির কোনো ইনডেক্স নেই, দ্বিতীয়টি ইনডেক্স ২-এ, তৃতীয়টি ইনডেক্স ৩-এ, ইত্যাদি।

উপরের নমুনা পলিসি কোডটি নিম্নলিখিত আগত অনুরোধের সাথে কাজ করছে বলে বিবেচনা করুন:

GET http://org1-test.apigee.net/weather?w=Boston&w=Chicago

যখন Apigee Edge এই আগত অনুরোধে উপরের ExtractVariables পলিসি কোডটি প্রয়োগ করে, তখন এটি queryinfo.firstWeather ভেরিয়েবলটির মান Boston এবং queryInfo.secondWeather ভেরিয়েবলটির মান Chicago সেট করে দেয়।

আপনি এখন আপনার প্রক্সিতে queryinfo.firstWeather এবং queryinfo.secondWeather ভেরিয়েবলগুলো অ্যাক্সেস করতে পারবেন। উদাহরণস্বরূপ, নিম্নলিখিত AssignMessage পলিসিটি এটিকে রিকোয়েস্টের পেলোডে কপি করে:

<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath">
 <DisplayName>GetQP</DisplayName>
  <Set>
   <Payload contentType="text/xml">
    <ExtractQP1>{queryinfo.firstWeather}</ExtractQP1>
    <ExtractQP2>{queryinfo.secondWeather}</ExtractQP2>
   </Payload>
  </Set>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

হেডার

<ExtractVariables name='ExtractVariable-OauthToken'>
  <Source>request</Source>
  <Header name="Authorization">
    <Pattern ignoreCase="false">Bearer {oauthtoken}</Pattern>
  </Header>
  <VariablePrefix>clientrequest</VariablePrefix>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

ধরা যাক, আপনার API OAuth v2.0 বেয়ারার টোকেন ব্যবহার করে। উপরের নমুনা পলিসি কোডটি বিবেচনা করুন, যা এমন একটি OAuth v2.0 টোকেন বহনকারী অনুরোধের সাথে কাজ করছে, যেটিতে এই ধরনের একটি হেডার অন্তর্ভুক্ত রয়েছে: Authorization: Bearer TU08xptfFfeM7aS0xHqlxTgEAdAM.

এপিআই ডিজাইনার হিসেবে, ধরুন আপনি ক্যাশ লুকআপে একটি কী (key) হিসেবে টোকেন ভ্যালুটি ব্যবহার করতে চান (পুরো হেডারটি নয়)। টোকেনটি এক্সট্র্যাক্ট করার জন্য আপনি উপরের ExtractVariables পলিসি কোডটি ব্যবহার করতে পারেন।

যখন Apigee Edge উপরের ExtractVariables পলিসি কোডটি এই হেডারে প্রয়োগ করে, তখন এটি clientrequest.oauthtoken ভেরিয়েবলটিকে TU08xptfFfeM7aS0xHqlxTgEAdAM -এ সেট করবে।

আপনি এখন আপনার প্রক্সিতে clientrequest.oauthtoken ভেরিয়েবলটি অ্যাক্সেস করতে পারবেন। উদাহরণস্বরূপ, নিম্নলিখিত AssignMessage পলিসিটি এটিকে রিকোয়েস্টের পেলোডে কপি করে:

<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath">
 <DisplayName>GetHeader</DisplayName>
  <Set>
   <Payload contentType="text/xml">
    <ExtractHeader>{clientrequest.oauthtoken}</ExtractHeader>
   </Payload>
  </Set>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

JSON

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

নিম্নলিখিত JSON প্রতিক্রিয়া পেলোডটি বিবেচনা করুন:

{
  "results": [{
    "geometry": {
      "location": {
        "lat": 37.42291810,
        "lng": -122.08542120
      },
      "location_type": "ROOFTOP",
      "viewport": {
        "northeast": {
          "lat": 37.42426708029149,
          "lng": -122.0840722197085
        },
        "southwest": {
          "lat": 37.42156911970850,
          "lng": -122.0867701802915
        }
      }
    }
  }]
}

যখন Apigee Edge এই JSON মেসেজটিতে উপরের ExtractVariables পলিসি কোডটি প্রয়োগ করে, তখন এটি geocoderesponse.latitude এবং geocoderesponse.longitude নামে দুটি ভ্যারিয়েবল সেট করে। উভয় ভ্যারিয়েবলই geocoderesponse এর একই ভ্যারিয়েবল প্রিফিক্স ব্যবহার করে। এই ভ্যারিয়েবলগুলোর সাফিক্স <Variable> এলিমেন্টের name অ্যাট্রিবিউটের মাধ্যমে স্পষ্টভাবে নির্দিষ্ট করা থাকে।

geocoderesponse.latitude ভ্যারিয়েবলটির মান হয় 37.42291810geocoderesponse.longitude ভ্যারিয়েবলটির মান হয় -122.08542120

আপনি এখন আপনার প্রক্সিতে geocoderesponse.latitude ভেরিয়েবলটি অ্যাক্সেস করতে পারবেন। উদাহরণস্বরূপ, নিম্নলিখিত AssignMessage পলিসিটি এটিকে রেসপন্সের 'latitude' নামের একটি হেডারে কপি করে:

<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath">
  <DisplayName>GetJSONVar</DisplayName>
  <Add>
    <Headers>
      <Header name="latitude">{geocoderesponse.latitude}</Header>
    </Headers>
  </Add>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <AssignTo createNew="false" transport="http" type="response"/>
</AssignMessage>

এক্সএমএল

<ExtractVariables name="ExtractVariables-4">
   <Source>response</Source>
   <XMLPayload>
      <Namespaces>
         <Namespace prefix="dir">urn:43BFF88D-D204-4427-B6BA-140AF393142F</Namespace>
      </Namespaces>
      <Variable name="travelmode" type="string">
         <XPath>/dir:Directions/dir:route/dir:leg/dir:step/@mode</XPath>
      </Variable>
      <Variable name="duration" type="string">
         <XPath>/dir:Directions/dir:route/dir:leg/dir:step/dir:duration/dir:value</XPath>
      </Variable>
      <Variable name="timeunit" type="string">
         <XPath>/dir:Directions/dir:route/dir:leg/dir:step/dir:duration/dir:text</XPath>
      </Variable>
   </XMLPayload>
   <VariablePrefix>directionsresponse</VariablePrefix>
</ExtractVariables>
<XMLPayload>

নিম্নলিখিত XML প্রতিক্রিয়া পেলোডটি বিবেচনা করুন:

<Directions xmlns="urn:43BFF88D-D204-4427-B6BA-140AF393142F">
   <status>OK</status>
   <route>
      <summary>I-40 W</summary>
      <leg>
         <step mode="DRIVING">
            <start_location>
               <lat>41.8507300</lat>
               <lng>-87.6512600</lng>
            </start_location>
            <end_location>
               <lat>41.8525800</lat>
               <lng>-87.6514100</lng>
            </end_location>
            <duration>
                <value>19</value>
                <text>minutes</text>
            </duration>
         </step>
      </leg>
   </route>
</Directions>

যখন Apigee Edge এই XML মেসেজটিতে উপরের ExtractVariables পলিসি কোডটি প্রয়োগ করে, তখন এটি তিনটি ভ্যারিয়েবল সেট করে: directionsresponse.travelmode, directionsresponse.duration , এবং directionsresponse.timeunit । সবগুলো ভ্যারিয়েবলই directionsresponse নামক একই ভ্যারিয়েবল প্রিফিক্স ব্যবহার করে। এই ভ্যারিয়েবলগুলোর সাফিক্স <Variable> এলিমেন্টের name অ্যাট্রিবিউটের মাধ্যমে স্পষ্টভাবে নির্দিষ্ট করে দেওয়া হয়।

directionsresponse.travelmode ভেরিয়েবলটির মান DRIVING হয়। directionsresponse.duration ভেরিয়েবলটির মান 19 হয়। directionsresponse.timeunit ভেরিয়েবলটির মান minutes হয়।

আপনি এখন আপনার প্রক্সিতে directionresponse.travelmode ভেরিয়েবলটি অ্যাক্সেস করতে পারবেন। উদাহরণস্বরূপ, নিম্নলিখিত AssignMessage পলিসিটি এটিকে রেসপন্সের 'tmode' নামের একটি হেডারে কপি করে:

<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath">
  <DisplayName>GetXMLVar</DisplayName>
  <Add>
    <Headers>
      <Header name="tmode">{directionsresponse.travelmode}</Header>
    </Headers>
  </Add>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

ExtractVariables নীতি সম্পর্কে

এপিআই ডেভেলপাররা এমন এপিআই প্রক্সি তৈরি করেন যা মেসেজের বিষয়বস্তু, যেমন হেডার, ইউআরআই পাথ, পেলোড এবং কোয়েরি প্যারামিটারের ওপর ভিত্তি করে ভিন্নভাবে আচরণ করে। প্রায়শই, প্রক্সিটি কোনো কন্ডিশন স্টেটমেন্টে ব্যবহারের জন্য এই বিষয়বস্তুর কিছু অংশ নিষ্কাশন করে। এটি করার জন্য ExtractVariables পলিসি ব্যবহার করুন।

ExtractVariables পলিসি নির্ধারণ করার সময়, আপনি বেছে নিতে পারেন:

  • যে ভেরিয়েবলগুলো সেট করতে হবে তাদের নাম
  • ভেরিয়েবলগুলির উৎস
  • কতগুলি ভেরিয়েবল বের করে সেট করতে হবে

কার্যকর করা হলে, পলিসিটি কন্টেন্টের উপর একটি টেক্সট প্যাটার্ন প্রয়োগ করে এবং মিল খুঁজে পেলে, সেই কন্টেন্ট দিয়ে নির্দিষ্ট ভেরিয়েবলের মান সেট করে দেয়। এরপর অন্যান্য পলিসি এবং কোড সেই ভেরিয়েবলগুলো ব্যবহার করে ডাইনামিক আচরণ চালু করতে পারে অথবা এজ এপিআই অ্যানালিটিক্স-এ ব্যবসায়িক ডেটা পাঠাতে পারে।

কন্টেন্ট-ভিত্তিক অ্যানালিটিক্স রিপোর্ট তৈরি করতে ExtractVariables কীভাবে ব্যবহার করা যায় তা দেখতে, “কাস্টম অ্যানালিটিক্স ব্যবহার করে এপিআই বার্তার কন্টেন্ট বিশ্লেষণ করুন” দেখুন।

পরিধি

ExtractVariables পলিসি দিয়ে সেট করা ভেরিয়েবলগুলোর গ্লোবাল স্কোপ থাকে। অর্থাৎ, ExtractVariables পলিসি একটি নতুন ভেরিয়েবল সংজ্ঞায়িত করার পর, আপনি ফ্লো-এর যেকোনো পর্যায়ে (যা ExtractVariables পলিসির পরে এক্সিকিউট হয়) যেকোনো পলিসি বা কোড থেকে সেই ভেরিয়েবলটি অ্যাক্সেস করতে পারবেন। এর মধ্যে অন্তর্ভুক্ত রয়েছে:

  • প্রিফ্লো: প্রক্সিএন্ডপয়েন্ট এবং টার্গেটএন্ডপয়েন্ট (অনুরোধ এবং প্রতিক্রিয়া)
  • পোস্টফ্লো: প্রক্সিএন্ডপয়েন্ট এবং টার্গেটএন্ডপয়েন্ট (অনুরোধ এবং প্রতিক্রিয়া)
  • PostClientFlow: ProxyEndpoint (শুধুমাত্র প্রতিক্রিয়া, মেসেজ লগিং নীতি ব্যবহার করে)
  • ত্রুটি প্রবাহ

মিলকরণ এবং ভেরিয়েবল তৈরি সম্পর্কে

ExtractVariables পলিসিটি কোনো অনুরোধ বা প্রতিক্রিয়া থেকে তথ্য সংগ্রহ করে এবং সেই তথ্য একটি ভেরিয়েবলে লিখে রাখে। আপনি যে ধরনের তথ্য সংগ্রহ করতে পারেন, যেমন URI পাথ বা XML ডেটা, তার প্রত্যেকটির জন্য আপনাকে মেলানোর প্যাটার্ন এবং সংগৃহীত তথ্য ধারণ করার জন্য ব্যবহৃত ভেরিয়েবলের নাম নির্দিষ্ট করে দিতে হয়।

তবে, প্যাটার্ন ম্যাচিং কীভাবে কাজ করে তা তথ্য নিষ্কাশনের উৎসের উপর নির্ভর করে। নিম্নলিখিত বিভাগগুলিতে তথ্যের দুটি মৌলিক বিভাগ বর্ণনা করা হয়েছে যা আপনি নিষ্কাশন করতে পারেন।

URI পাথ, কোয়েরি প্যারামিটার, হেডার, ফর্ম প্যারামিটার এবং ভেরিয়েবল মেলানো

URI পাথ, কোয়েরি প্যারামিটার, হেডার, ফর্ম প্যারামিটার এবং ভেরিয়েবল থেকে তথ্য বের করার সময়, এক বা একাধিক ম্যাচ করার প্যাটার্ন নির্দিষ্ট করতে <Pattern> ট্যাগ ব্যবহার করা হয়। উদাহরণস্বরূপ, নিম্নলিখিত পলিসি উদাহরণটি URI পাথের জন্য একটি একক ম্যাচিং প্যাটার্ন দেখাচ্ছে:

<ExtractVariables name="ExtractVariables-1">
   <Source>request</Source>
   <URIPath>
      <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
   </URIPath>
   <VariablePrefix>urirequest</VariablePrefix>
   <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

এই উদাহরণে, urirequest.pathSeg ভেরিয়েবলটি proxy.pathsuffix-এর "/a/"-এর পরে যা কিছু থাকে, তা দিয়ে সেট করা হয়। উদাহরণস্বরূপ, ধরুন আপনার API প্রক্সির বেস পাথ হলো /basepath/v1http://myCo.com/basepath/v1/a/b- তে একটি ইনবাউন্ড রিকোয়েস্ট এলে ভেরিয়েবলটি "b" দিয়ে সেট করা হয়।

একাধিক প্যাটার্ন নির্দিষ্ট করা

আপনি <Pattern> ট্যাগ অনুযায়ী একাধিক প্যাটার্ন নির্দিষ্ট করতে পারেন, যেখানে:

  • সমস্ত প্যাটার্ন মিলছে কিনা তা পরীক্ষা করা হয়।
  • যদি কোনো প্যাটার্নই না মেলে, তাহলে পলিসিটি কোনো কাজ করে না এবং ভেরিয়েবলটি তৈরি হয় না।
  • যদি একাধিক প্যাটার্ন মিলে যায়, তবে দীর্ঘতম পথ খণ্ডযুক্ত প্যাটার্নটি নিষ্কাশনের জন্য ব্যবহার করা হয়।
  • যদি দুটি মিলে যাওয়া প্যাটার্নের দীর্ঘতম পাথ সেগমেন্ট একই হয়, তাহলে এক্সট্র্যাকশনের জন্য পলিসিতে প্রথমে নির্দিষ্ট করা প্যাটার্নটি ব্যবহার করা হয়।

পরবর্তী উদাহরণে, আপনি এমন একটি পলিসি তৈরি করবেন যাতে URI পাথের জন্য তিনটি মিলে যাওয়া প্যাটার্ন রয়েছে:

<ExtractVariables name="ExtractVariables-1">
   <Source>request</Source>
   <URIPath>
      <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
      <Pattern ignoreCase="true">/a/b/{pathSeg}</Pattern>
      <Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern>
   </URIPath>
   <VariablePrefix>urirequest</VariablePrefix>
   <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

ধরা যাক, /basepath/v1 বেসপাথযুক্ত একটি এপিআই প্রক্সির ক্ষেত্রে, এপিআই প্রক্সিতে আসা ইনবাউন্ড রিকোয়েস্ট ইউআরএলটি এই ধরনের হয়ে থাকে:

http://myCo.com/basepath/v1/a/b

এই উদাহরণে, প্রথম প্যাটার্নটি URI-এর সাথে মেলে এবং urirequest.pathSeg ভেরিয়েবলটির মান "b" সেট করা হয়েছে।

যদি অনুরোধ URL হয়:

http://myCo.com/basepath/v1/a/b/c/d

...তারপর তৃতীয় প্যাটার্নটি মিলে যায় এবং urirequest.pathSeg ভেরিয়েবলটির মান "d" সেট করা হয়।

একাধিক ভেরিয়েবল দিয়ে প্যাটার্ন নির্দিষ্ট করা

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

<ExtractVariables name="ExtractVariables-1">
   <Source>request</Source>
   <URIPath>
      <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
      <Pattern ignoreCase="true">/a/b/{pathSeg}</Pattern>
      <Pattern ignoreCase="true">/a/{pathSeg1}/c/{pathSeg2}</Pattern>
   </URIPath>
   <VariablePrefix>urirequest</VariablePrefix>
   <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

আবার ধরে নিই, একটি এপিআই প্রক্সির বেস পাথ হলো /basepath/v1 , তাহলে ইনবাউন্ড রিকোয়েস্ট ইউআরএলটি হবে:

http://myCo.com/basepath/v1/a/b/c/d

... urirequest.pathSeg1 ভেরিয়েবলটির মান 'b' এবং urirequest.pathSeg2 ভেরিয়েবলটির মান 'd' সেট করা হয়েছে।

প্যাটার্নে একাধিক দৃষ্টান্ত মেলানো

একই নামের কোনো আইটেমের একাধিক উপস্থিতি থাকলেও আপনি প্যাটার্ন মেলাতে পারেন। উদাহরণস্বরূপ, আপনি এমন একটি অনুরোধ করতে পারেন যাতে একই নামের একাধিক কোয়েরি প্যারামিটার বা একাধিক হেডার থাকে। নিম্নলিখিত অনুরোধটিতে "w" নামের দুটি কোয়েরি প্যারামিটার রয়েছে:

http://myCo.com/basepath/v1/a/b/c/d?w=1&w=2

ExtractVariables পলিসিতে এই কোয়েরি প্যারামিটারগুলোকে রেফারেন্স করতে ইনডেক্স ব্যবহার করা হয়, যেখানে কোয়েরি প্যারামিটারের প্রথম ইনস্ট্যান্সটির কোনো ইনডেক্স থাকে না, দ্বিতীয়টি ইনডেক্স ২-এ, তৃতীয়টি ইনডেক্স ৩-এ, ইত্যাদি। উদাহরণস্বরূপ, নিম্নলিখিত পলিসিটি রিকোয়েস্ট থেকে 'w' নামের দ্বিতীয় কোয়েরি প্যারামিটারের মান এক্সট্র্যাক্ট করে:

<ExtractVariables name="ExtractVariables-1">
   <Source>request</Source>
   <QueryParam name="w.2">
      <Pattern ignoreCase="true">{secondW}</Pattern>
   </QueryParam>
   <VariablePrefix>urirequest</VariablePrefix>
   <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

urirequest.secondW ভেরিয়েবলটির মান "2" সেট করা হয়। যদি অনুরোধ থেকে দ্বিতীয় কোয়েরি প্যারামিটারটি বাদ দেওয়া হয়, তাহলে urirequest.secondW ভেরিয়েবলটি খালি থাকে। অনুরোধে একই নামের একাধিক আইটেম থাকলে ইনডেক্সিং ব্যবহার করুন।

প্যাটার্নে বিশেষ অক্ষর ব্যবহার করা

URI পাথ মেলানোর সময়, আপনি প্যাটার্নে "*" এবং "**" ওয়াইল্ডকার্ড অক্ষর ব্যবহার করতে পারেন, যেখানে:

  • "*" চিহ্নটি পাথের যেকোনো একটি অংশকে নির্দেশ করে।
  • "**" পাথের একাধিক অংশকে মেলায়।

উদাহরণস্বরূপ, আপনি <URIPath> এলিমেন্টে প্যাটার্নগুলো নিচে দেখানো উপায়ে নির্দিষ্ট করেন:

<URIPath>
  <Pattern ignoreCase="true">/a/*/{id}</Pattern>
  <Pattern ignoreCase="true">/a/**/{id}</Pattern>
</URIPath>

প্রথম প্যাটার্নটি পাথসাফিক্স (বেসপ্যাথের পরে URI পাথের অংশ) সহ অনুরোধগুলির সাথে মেলে, যেমন "/a/b/c", "/a/foo/bar", ইত্যাদি। দ্বিতীয় প্যাটার্নটি "/a/"-এর পরে যেকোনো সংখ্যক পাথ সেগমেন্টের সাথে মেলে, যেমন "/a/foo/bar/baz/c", সেইসাথে "/a/b/c" এবং "/a/foo/bar"-এর সাথেও মেলে।

কোয়েরি প্যারামিটার, হেডার এবং ফর্ম প্যারামিটারে প্যাটার্ন নির্দিষ্ট করার সময়, "*" চিহ্নটি যেকোনো সংখ্যক অক্ষর মেলানোর জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি হেডার মেলানোর সময়, প্যাটার্নটি এভাবে নির্দিষ্ট করুন:

*;charset={encoding}

এই প্যাটার্নটি "text/xml;charset=UTF-16" এবং "application/xml;charset=ASCII" মানগুলোর সাথে মেলে।

ExtractVariables পলিসিতে পাঠানো ভ্যালুতে যদি "{"-এর মতো কোনো বিশেষ ক্যারেক্টার থাকে, তবে সেটিকে এস্কেপ করার জন্য "%" ক্যারেক্টারটি ব্যবহার করুন। নিচের উদাহরণটিতে প্যাটার্নের মধ্যে থাকা "{" এবং "}" ক্যারেক্টারগুলোকে এস্কেপ করা হয়েছে, কারণ এগুলো কোয়েরি প্যারামিটারের ভ্যালুতে আক্ষরিক ক্যারেক্টার হিসেবে ব্যবহৃত হয়েছে:

<QueryParam>
  <Pattern ignoreCase="true">%{user%} {name}</Pattern>
</QueryParam>

এই উদাহরণে, প্যাটার্নটি "{user} Steve" মানটির সাথে মেলে, কিন্তু "user Steve" মানটির সাথে মেলে না।

JSON এবং XML মেলানো

JSON এবং XML থেকে ডেটা এক্সট্র্যাক্ট করার সময়, আপনাকে পলিসিতে এক বা একাধিক <Variable> ট্যাগ উল্লেখ করতে হয়। <Variable> ট্যাগটি সেই ডেস্টিনেশন ভেরিয়েবলের নাম নির্দিষ্ট করে যেখানে এক্সট্র্যাক্ট করা তথ্য সংরক্ষণ করা হয়, এবং এক্সট্র্যাক্ট করা তথ্যের JsonPath (JSON) বা XPATH (XML) নির্দেশ করে।

পলিসির সমস্ত <Variable> ট্যাগ মূল্যায়ন করা হয়, ফলে আপনি একটিমাত্র পলিসি থেকেই একাধিক ভেরিয়েবল পূরণ করতে পারেন। যদি <Variable> ট্যাগটি JSON বা XML-এর কোনো বৈধ ফিল্ড হিসেবে মূল্যায়ন না হয়, তাহলে সংশ্লিষ্ট ভেরিয়েবলটি তৈরি করা হয় না।

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

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

একই ভেরিয়েবলে একাধিক জায়গায় লেখা

সেট করার জন্য ভেরিয়েবলের নাম বাছাই করার সময় সতর্ক থাকুন। পলিসিটি প্রথম এক্সট্র্যাকশন প্যাটার্ন থেকে শেষটি পর্যন্ত ক্রমানুসারে কার্যকর হয়। যদি পলিসিটি একাধিক স্থান থেকে একই ভেরিয়েবলে কোনো মান লেখে, তবে পলিসির সর্বশেষ লেখাটিই ভেরিয়েবলটির মান নির্ধারণ করবে। (হয়তো আপনি এটাই চান।)

উদাহরণস্বরূপ, আপনি এমন একটি টোকেন মান বের করতে চান যা কোয়েরি প্যারামিটার বা হেডারে পাঠানো যেতে পারে, যেমনটি নিচে দেখানো হয়েছে:

<!-- If token only in query param, the query param determines the value.
     If token is found in both the query param and header, header sets value. -->
<QueryParam name="token">
  <Pattern ignoreCase="true">{tokenValue}</Pattern>
</QueryParam>

<!-- Overwrite tokenValue even if it was found in query parameter. -->
<Header name="Token">
  <Pattern ignoreCase="true">{tokenValue}</Pattern>
</Header>

যখন কোন মিল হয় না তখন কী ঘটবে তা নিয়ন্ত্রণ করা

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

একটি উপায় হলো, যে পলিসিটি ভেরিয়েবলটিকে রেফারেন্স করে, সেখানে <IgnoreUnresolvedVariables> কে true তে সেট করা, যাতে পলিসিটি যেকোনো সমাধান-অযোগ্য ভেরিয়েবলকে একটি খালি স্ট্রিং (null) হিসেবে গণ্য করে।

<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>

উপাদান রেফারেন্স

এলিমেন্ট রেফারেন্সটি ExtractVariables পলিসির উপাদান এবং অ্যাট্রিবিউটগুলো বর্ণনা করে।

<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
   <DisplayName>Extract Variables 1</DisplayName>
   <Source clearPayload="true|false">request</Source>
   <VariablePrefix>myprefix</VariablePrefix>
   <IgnoreUnresolvedVariables>true|false</IgnoreUnresolvedVariables>
   <URIPath>
      <Pattern ignoreCase="false">/accounts/{id}</Pattern>
   </URIPath>
   <QueryParam name="code">
      <Pattern ignoreCase="true">DBN{dbncode}</Pattern>
   </QueryParam>
   <Header name="Authorization">
      <Pattern ignoreCase="false">Bearer {oauthtoken}</Pattern>
   </Header>
   <FormParam name="greeting">
      <Pattern>hello {user}</Pattern>
   </FormParam>
   <Variable name="request.content">
       <Pattern>hello {user}</Pattern>
   </Variable>
   <JSONPayload>
      <Variable name="name">
         <JSONPath>{example}</JSONPath>
      </Variable>
   </JSONPayload>
   <XMLPayload stopPayloadProcessing="false">
      <Namespaces/>
      <Variable name="name" type="boolean">
         <XPath>/test/example</XPath>
      </Variable>
   </XMLPayload>
</ExtractVariables>

<ExtractVariables> অ্যাট্রিবিউট

<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">

নিম্নলিখিত সারণী সমস্ত নীতির মূল উপাদানগুলির জন্য সাধারণ বৈশিষ্ট্যগুলি বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
name

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

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

N/A প্রয়োজন
continueOnError

একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে false সেট করুন৷ এটি বেশিরভাগ নীতির জন্য প্রত্যাশিত আচরণ।

একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে true সেট করুন৷

মিথ্যা ঐচ্ছিক
enabled

নীতি প্রয়োগ করতে true সেট করুন৷

নীতি বন্ধ করতে false সেট করুন। নীতিটি প্রবাহের সাথে সংযুক্ত থাকলেও তা কার্যকর করা হবে না।

সত্য ঐচ্ছিক
async

এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷

মিথ্যা অবচয়

<DisplayName> উপাদান

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

<DisplayName>Policy Display Name</DisplayName>
ডিফল্ট

N/A

আপনি এই উপাদানটি বাদ দিলে, নীতির name বৈশিষ্ট্যের মান ব্যবহার করা হবে।

উপস্থিতি ঐচ্ছিক
টাইপ স্ট্রিং

<উৎস> উপাদান

(ঐচ্ছিক) যে ভেরিয়েবলটি পার্স করা হবে তা নির্দিষ্ট করে। <Source> এর ডিফল্ট মান হলো messagemessage এর মানটি প্রসঙ্গ-সংবেদনশীল। একটি রিকোয়েস্ট ফ্লো-তে, message রিকোয়েস্ট মেসেজে রূপান্তরিত হয়। একটি রেসপন্স ফ্লো-তে, message রেসপন্স মেসেজে রূপান্তরিত হয়।

যদিও আপনি প্রায়শই কোনো অনুরোধ বা প্রতিক্রিয়া বার্তা থেকে তথ্য বের করার জন্য এই পলিসিটি ব্যবহার করেন, আপনি এটি যেকোনো ভেরিয়েবল থেকে তথ্য বের করতেও ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি এটি AccessEntity পলিসি দ্বারা তৈরি কোনো এনটিটি থেকে, Service Callout পলিসি দ্বারা ফেরত আসা ডেটা থেকে, অথবা কোনো XML বা JSON অবজেক্ট থেকে তথ্য বের করতে ব্যবহার করতে পারেন।

যদি <Source> সমাধান করা না যায়, অথবা এটি কোনো বার্তা-বহির্ভূত প্রকারে সমাধান হয়, তাহলে পলিসিটি সাড়া দিতে ব্যর্থ হবে।

<Source clearPayload="true|false">request</Source>
ডিফল্ট: বার্তা
উপস্থিতি: ঐচ্ছিক
প্রকার: স্ট্রিং

বৈশিষ্ট্য

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি প্রকার
ক্লিয়ারপেলোড

<Source>-এ নির্দিষ্ট করা পেলোড থেকে ডেটা এক্সট্র্যাক্ট করার পর তা মুছে ফেলতে চাইলে, এটিকে true- তে সেট করুন।

ExtractVariables কার্যকর হওয়ার পর যদি উৎস বার্তাটির আর প্রয়োজন না হয়, শুধুমাত্র তখনই <clearPayload> বিকল্পটি ব্যবহার করুন। এটিকে ' true' সেট করলে বার্তাটি দ্বারা ব্যবহৃত মেমরি মুক্ত হয়ে যায়।

মিথ্যা

ঐচ্ছিক বুলিয়ান

<VariablePrefix> উপাদান

(ঐচ্ছিক) সম্পূর্ণ ভেরিয়েবলের নামটি তৈরি করা হয় <VariablePrefix> , একটি ডট এবং <Pattern> বা <Variable> এলিমেন্টের মধ্যে {কার্লি ব্র্যাকেটের} ভেতরে আপনার দেওয়া নামটি যুক্ত করে। উদাহরণস্বরূপ: myprefix.id , myprefix.dbncode , বা myprefix.oauthtoken.

<VariablePrefix>myprefix</VariablePrefix>

উদাহরণস্বরূপ, ধরা যাক name-এর মান হলো 'user'।

  • যদি <VariablePrefix> নির্দিষ্ট করা না থাকে, তাহলে নিষ্কাশিত মানগুলি user নামের একটি ভেরিয়েবলে বরাদ্দ করা হয়।
  • যদি <VariablePrefix> হিসেবে myprefix নির্দিষ্ট করা হয়, তাহলে নিষ্কাশিত মানগুলো myprefix.user নামের একটি ভেরিয়েবলে বরাদ্দ করা হয়।
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
প্রকার: স্ট্রিং

<IgnoreUnresolvedVariables> উপাদান

(ঐচ্ছিক) যেকোনো সমাধান-অযোগ্য ভেরিয়েবলকে একটি খালি স্ট্রিং (নাল) হিসাবে গণ্য করতে এটিকে ' true সেট করুন। যদি আপনি চান যে কোনো রেফারেন্সকৃত ভেরিয়েবল সমাধান-অযোগ্য হলে পলিসিটি একটি ত্রুটি (error) দেখাবে, তাহলে এটিকে ' false সেট করুন।

<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
ডিফল্ট: মিথ্যা
উপস্থিতি: ঐচ্ছিক
প্রকার: বুলিয়ান

যদি কোনো <XMLPayload> এ একটি XPath রেফারেন্স অমীমাংসিত থাকে, তাহলে পলিসিটি নিম্নলিখিত ত্রুটিটি দেখায়:

{
   "fault":{
      "faultstring":"Unresolved xpath path in policy policy_name.",
      "detail":{
         "errorcode":"steps.extractvariables.InvalidXPath"
      }
   }
}

<URIPath> উপাদান

(ঐচ্ছিক, তবে আরও তথ্যের জন্য নিচের টেবিলের 'Presence' সারিটি দেখুন।) একটি অনুরোধের উৎস বার্তার proxy.pathsuffix থেকে একটি মান বের করে। প্যাটার্নটিতে যে পাথটি প্রয়োগ করা হয় তা হলো proxy.pathsuffix, যার মধ্যে API প্রক্সির বেসপ্যাথ অন্তর্ভুক্ত থাকে না। যদি উৎস বার্তাটি ' response ' ধরনের বার্তায় পরিণত হয়, তাহলে এই এলিমেন্টটি কোনো কাজ করে না।

<URIPath>
   <Pattern ignoreCase="false">/accounts/{id}</Pattern>
</URIPath>

একাধিক <Pattern> এলিমেন্ট ব্যবহার করা সম্ভব:

<URIPath>
   <Pattern ignoreCase="false">/accounts/{id}</Pattern>
   <Pattern ignoreCase="false">/accounts/{id}/transactions/{index}</Pattern>
</URIPath>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক। তবে, আপনাকে অবশ্যই নিম্নলিখিতগুলির মধ্যে অন্তত একটি অন্তর্ভুক্ত করতে হবে: <URIPath> , <QueryParam> , <Header> , <FormParam> , <JSONPayload> , অথবা <XMLPayload>.
প্রকার: প্রযোজ্য নয়

বৈশিষ্ট্য

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি প্রকার
উপেক্ষা করুন প্যাটার্ন মেলানোর সময় কেস উপেক্ষা করার নির্দেশ দেয়।

মিথ্যা

ঐচ্ছিক বুলিয়ান

<QueryParam> উপাদান

(ঐচ্ছিক, তবে আরও তথ্যের জন্য নিচের সারণির 'উপস্থিতি' সারিটি দেখুন।) একটি অনুরোধ উৎস বার্তার নির্দিষ্ট কোয়েরি প্যারামিটার থেকে একটি মান নিষ্কাশন করে। যদি উৎস বার্তাটি ' প্রতিক্রিয়া ' বার্তা প্রকারে সমাধান হয়, তাহলে এই উপাদানটি কিছুই করে না।

<QueryParam name="code">
   <Pattern ignoreCase="true">DBN{dbncode}</Pattern>
</QueryParam>

যদি একাধিক কোয়েরি প্যারামিটারের নাম একই হয়, তাহলে প্যারামিটারগুলোকে রেফারেন্স করতে ইনডেক্স ব্যবহার করুন:

<QueryParam name="w.2">
   <Pattern ignoreCase="true">{secondW}</Pattern>
</QueryParam>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক। তবে, আপনাকে অবশ্যই নিম্নলিখিতগুলির মধ্যে অন্তত একটি অন্তর্ভুক্ত করতে হবে: <URIPath> , <QueryParam> , <Header> , <FormParam> , <JSONPayload> , অথবা <XMLPayload>.
প্রকার: প্রযোজ্য নয়

বৈশিষ্ট্য

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি প্রকার
নাম কোয়েরি প্যারামিটারের নাম নির্দিষ্ট করে। যদি একাধিক কোয়েরি প্যারামিটারের নাম একই হয়, তবে ইনডেক্সড রেফারেন্সিং ব্যবহার করুন, যেখানে কোয়েরি প্যারামিটারের প্রথমটির কোনো ইনডেক্স থাকে না, দ্বিতীয়টি ইনডেক্স ২-এ, তৃতীয়টি ইনডেক্স ৩-এ, ইত্যাদি।

প্রযোজ্য নয়

প্রয়োজনীয় স্ট্রিং

<হেডার> উপাদান

(ঐচ্ছিক, তবে আরও তথ্যের জন্য নিচের সারণির 'উপস্থিতি' সারিটি দেখুন।) নির্দিষ্ট অনুরোধ বা প্রতিক্রিয়া বার্তার নির্দিষ্ট HTTP হেডার থেকে একটি মান বের করে। যদি একাধিক হেডারের নাম একই হয়, তবে তাদের মানগুলো একটি অ্যারেতে সংরক্ষণ করা হয়।

<!-- The name is the actual header name. -->
<Header name="Authorization">
<!-- Provide a name for your new custom variable here. -->
   <Pattern ignoreCase="false">Bearer {oauthtoken}</Pattern>
</Header>

যদি একাধিক হেডারের নাম একই হয়, তাহলে অ্যারের মধ্যে থাকা স্বতন্ত্র হেডারগুলোকে নির্দেশ করতে ইনডেক্স ব্যবহার করুন:

<Header name="myHeader.2">
   <Pattern ignoreCase="true">{secondHeader}</Pattern>
</Header>

অথবা অ্যারের সমস্ত হেডার তালিকাভুক্ত করতে নিম্নলিখিতটি ব্যবহার করুন:

<Header name="myHeader.values">
   <Pattern ignoreCase="true">{myHeaders}</Pattern>
</Header>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক। তবে, আপনাকে অবশ্যই নিম্নলিখিতগুলির মধ্যে অন্তত একটি অন্তর্ভুক্ত করতে হবে: <URIPath> , <QueryParam> , <Header> , <FormParam> , <JSONPayload> , অথবা <XMLPayload>.
প্রকার: প্রযোজ্য নয়

বৈশিষ্ট্য

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি প্রকার
নাম যে হেডার থেকে আপনি মানটি বের করবেন, তার নাম নির্দিষ্ট করে। যদি একাধিক হেডারের নাম একই হয়, তাহলে ইনডেক্সড রেফারেন্সিং ব্যবহার করুন, যেখানে হেডারের প্রথমটির কোনো ইনডেক্স থাকে না, দ্বিতীয়টি ইনডেক্স ২-এ, তৃতীয়টি ইনডেক্স ৩-এ, ইত্যাদি। অ্যারের সমস্ত হেডার পেতে .values ​​ব্যবহার করুন।

প্রযোজ্য নয়

প্রয়োজনীয় স্ট্রিং

<ফর্মপ্যারাম> উপাদান

(ঐচ্ছিক, তবে আরও তথ্যের জন্য নিচের সারণির 'উপস্থিতি' সারিটি দেখুন।) নির্দিষ্ট অনুরোধ বা প্রতিক্রিয়া বার্তার নির্দিষ্ট ফর্ম প্যারামিটার থেকে একটি মান নিষ্কাশন করে। ফর্ম প্যারামিটারগুলি কেবল তখনই নিষ্কাশন করা যাবে যখন নির্দিষ্ট বার্তার ' Content-Type হেডারটি application/x-www-form-urlencoded হবে।

<FormParam name="greeting">
    <Pattern>hello {user}</Pattern>
</FormParam>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক। তবে, আপনাকে অবশ্যই নিম্নলিখিতগুলির মধ্যে অন্তত একটি অন্তর্ভুক্ত করতে হবে: <URIPath> , <QueryParam> , <Header> , <FormParam> , <JSONPayload> , অথবা <XMLPayload>.
প্রকার: প্রযোজ্য নয়

বৈশিষ্ট্য

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি প্রকার
নাম ফর্ম প্যারামিটারটির নাম, যেখান থেকে আপনি মানটি গ্রহণ করেন।

প্রযোজ্য নয়

প্রয়োজনীয় স্ট্রিং

<পরিবর্তনশীল> উপাদান

(ঐচ্ছিক, তবে আরও তথ্যের জন্য নিচের সারণির 'উপস্থিতি' সারিটি দেখুন।) এমন একটি ভেরিয়েবলের নাম নির্দিষ্ট করে যেখান থেকে একটি মান বের করতে হবে।

<Variable name="myVar">
    <Pattern>hello {user}</Pattern>
</Variable>

ভেরিয়েবল থেকে দুটি মান বের করতে:

<Variable name="myVar">
   <Pattern>hello {firstName} {lastName}</Pattern>
</Variable>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক। তবে, আপনাকে অবশ্যই নিম্নলিখিতগুলির মধ্যে অন্তত একটি অন্তর্ভুক্ত করতে হবে: <URIPath> , <QueryParam> , <Header> , <FormParam> , <JSONPayload> , অথবা <XMLPayload>.
প্রকার: প্রযোজ্য নয়

বৈশিষ্ট্য

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি প্রকার
নাম যে ভেরিয়েবল থেকে মানটি বের করতে হবে তার নাম।

প্রযোজ্য নয়

প্রয়োজনীয় স্ট্রিং

<JSONPayload> উপাদান

(ঐচ্ছিক, তবে আরও তথ্যের জন্য নিচের সারণির 'উপস্থিতি' সারিটি দেখুন।) এটি সেই JSON-ফরম্যাট করা বার্তাটি নির্দিষ্ট করে, যেখান থেকে ভেরিয়েবলের মান নিষ্কাশন করা হবে। JSON নিষ্কাশন শুধুমাত্র তখনই করা হয় যখন বার্তার ' Content-Type' হেডারটি 'application/json' হয়।

<JSONPayload>
   <Variable name="name" type="string">
      <JSONPath>{example}</JSONPath>
   </Variable>
</JSONPayload>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক। তবে, আপনাকে অবশ্যই নিম্নলিখিতগুলির মধ্যে অন্তত একটি অন্তর্ভুক্ত করতে হবে: <URIPath> , <QueryParam> , <Header> , <FormParam> , <JSONPayload> , অথবা <XMLPayload>.
প্রকার: প্রযোজ্য নয়

<JSONPayload>/<Variable> উপাদান

(JSONPayload এলিমেন্টের মধ্যে আবশ্যক।) এটি সেই ভেরিয়েবলকে নির্দিষ্ট করে যেখানে নিষ্কাশিত মানটি বরাদ্দ করা হয়। একাধিক ভেরিয়েবল পূরণ করার জন্য আপনি <JSONPayload> এলিমেন্টের মধ্যে একাধিক <Variable> ট্যাগ অন্তর্ভুক্ত করতে পারেন।

<Variable name="name" type="string">
   <JSONPath>{example}</JSONPath>
</Variable>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: JSONPayload এলিমেন্টের মধ্যে এটি আবশ্যক।
প্রকার: প্রযোজ্য নয়

বৈশিষ্ট্য

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি প্রকার
নাম

যে ভেরিয়েবলে নিষ্কাশিত মানটি বরাদ্দ করা হবে, তার নাম নির্দিষ্ট করে।

নাম

প্রয়োজনীয় স্ট্রিং
প্রকার ভেরিয়েবল 'value'-এর ডেটা টাইপ নির্দিষ্ট করে। প্রযোজ্য নয় ঐচ্ছিক

স্ট্রিং। নিম্নলিখিতগুলি থেকে নির্বাচন করুন:

  • স্ট্রিং
  • বুলিয়ান
  • পূর্ণসংখ্যা
  • দীর্ঘ
  • ভাসতে
  • দ্বিগুণ
  • নোডসেট (যা JSON খণ্ডাংশ ফেরত দেয়)

<JSONPayload>/<Variable>/<JSONPath> উপাদান

(JSONPayload:Variable এলিমেন্টের মধ্যে আবশ্যক।) একটি JSON-ফরম্যাট করা বার্তা থেকে মান নিষ্কাশন করতে ব্যবহৃত JSON পাথ নির্দিষ্ট করে।

<Variable name="name">
   <JSONPath>$.rss.channel.title</JSONPath>
</Variable>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: প্রয়োজনীয়
প্রকার: স্ট্রিং

<XMLPayload> উপাদান

(ঐচ্ছিক, তবে আরও তথ্যের জন্য নিচের সারণির 'Presence' সারিটি দেখুন।) এটি সেই XML-ফরম্যাট করা বার্তাটি নির্দিষ্ট করে যেখান থেকে ভেরিয়েবলের মান নিষ্কাশন করা হবে। XML পেলোডগুলি কেবল তখনই নিষ্কাশন করা হয় যখন বার্তাটির Content-Type হেডারটি text/xml , application/xml , বা application/*+xml হয়।

<XMLPayload stopPayloadProcessing="false">
  <Namespaces>
     <Namespace prefix="apigee">http://www.apigee.com</Namespace>
     <Namespace prefix="gmail">http://mail.google.com</Namespace>
  </Namespaces>
  <Variable name="name" type="boolean">
     <XPath>/apigee:test/apigee:example</XPath>
  </Variable>
</XMLPayload>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক। তবে, আপনাকে অবশ্যই নিম্নলিখিতগুলির মধ্যে অন্তত একটি অন্তর্ভুক্ত করতে হবে: <URIPath> , <QueryParam> , <Header> , <FormParam> , <JSONPayload> , অথবা <XMLPayload>.
প্রকার: প্রযোজ্য নয়

বৈশিষ্ট্য

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি প্রকার
stopPayloadProcessing

একটি ভেরিয়েবল পূরণ হওয়ার পর XPath মূল্যায়ন বন্ধ করতে এটিকে ' true সেট করুন। এর মানে হলো, পলিসি দ্বারা শুধুমাত্র একটি ভেরিয়েবল পূরণ করা হবে।

মিথ্যা

ঐচ্ছিক বুলিয়ান

<XMLPayload>/<Namespaces> উপাদান

(ঐচ্ছিক) XPath মূল্যায়নে ব্যবহৃত নেমস্পেস নির্দিষ্ট করে। যদি আপনি আপনার XPath এক্সপ্রেশনে নেমস্পেস ব্যবহার করেন, তবে আপনাকে অবশ্যই এখানে নেমস্পেসগুলো ঘোষণা করতে হবে, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে।

<XMLPayload stopPayloadProcessing="false">
  <Namespaces>
     <Namespace prefix="apigee">http://www.apigee.com</Namespace>
     <Namespace prefix="gmail">http://mail.google.com</Namespace>
  </Namespaces>
  <Variable name="legName" type="string">
    <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
  </Variable>
</XMLPayload>

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

<XMLPayload stopPayloadProcessing="false">
  <!-- <Namespaces/> -->
  <Variable name="legName" type="string">
    <XPath>/Directions/route/leg/name</XPath>
  </Variable>
</XMLPayload>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
প্রকার: স্ট্রিং

বৈশিষ্ট্য

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি প্রকার
prefix

নেমস্পেস প্রিফিক্স।

প্রযোজ্য নয়

প্রয়োজনীয় স্ট্রিং

<XMLPayload>/<Variable> উপাদান

(ঐচ্ছিক) সেই ভেরিয়েবলটি নির্দিষ্ট করে যেখানে নিষ্কাশিত মানটি বরাদ্দ করা হবে।

<Variable name="name" type="boolean">
   <XPath>/test/example</XPath>
</Variable>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: ঐচ্ছিক
প্রকার: প্রযোজ্য নয়

বৈশিষ্ট্য

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি প্রকার
নাম

যে ভেরিয়েবলে নিষ্কাশিত মানটি বরাদ্দ করা হবে, তার নাম নির্দিষ্ট করে।

নাম

প্রয়োজনীয় স্ট্রিং
প্রকার ভেরিয়েবল 'value'-এর ডেটা টাইপ নির্দিষ্ট করে। বুলিয়ান ঐচ্ছিক

স্ট্রিং। নিম্নলিখিতগুলি থেকে নির্বাচন করুন:

  • স্ট্রিং
  • বুলিয়ান
  • পূর্ণসংখ্যা
  • দীর্ঘ
  • ভাসতে
  • দ্বিগুণ
  • নোডসেট (একটি XML খণ্ড ফেরত দেয়)

<XMLPayload>/<Variable>/<XPath> উপাদান

(XMLPayload:Variable এলিমেন্টের মধ্যে আবশ্যক।) ভেরিয়েবলের জন্য নির্ধারিত XPath নির্দিষ্ট করে। শুধুমাত্র XPath 1.0 এক্সপ্রেশন সমর্থিত।

<Variable name="name" type="boolean">
   <XPath>/test/example</XPath>
</Variable>

নেমস্পেস সহ উদাহরণ। আপনি যদি আপনার XPath এক্সপ্রেশনে নেমস্পেস ব্যবহার করেন, তাহলে আপনাকে অবশ্যই পলিসির <XMLPayload><Namespaces> সেকশনে নেমস্পেসগুলো ডিক্লেয়ার করতে হবে।

<Variable name="name" type="boolean">
   <XPath>/foo:test/foo:example</XPath>
</Variable>
ডিফল্ট: প্রযোজ্য নয়
উপস্থিতি: প্রয়োজনীয়
প্রকার: স্ট্রিং

ত্রুটির রেফারেন্স

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

রানটাইম ত্রুটি

নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷

ফল্ট কোড HTTP স্থিতি কারণ ঠিক করুন
steps.extractvariables.ExecutionFailed 500

এই ত্রুটিটি ঘটে যখন:

  • ইনপুট পেলোড (JSON, XML) খালি।
  • নীতিতে পাস করা ইনপুট (JSON, XML, ইত্যাদি) অবৈধ বা বিকৃত।
steps.extractvariables.ImmutableVariable 500 নীতিতে ব্যবহৃত একটি পরিবর্তনশীল অপরিবর্তনীয়। নীতি এই পরিবর্তনশীল সেট করতে অক্ষম ছিল.
steps.extractvariables.InvalidJSONPath 500 যদি নীতির JSONPath এলিমেন্টে একটি অবৈধ JSON পাথ ব্যবহার করা হয় তাহলে এই সমস্যাটি ঘটে। উদাহরণস্বরূপ, যদি একটি JSON পেলোডে অবজেক্টের Name না থাকে তবে আপনি নীতিতে পাথ হিসাবে Name উল্লেখ করেন, তাহলে এই ত্রুটিটি ঘটে।
steps.extractvariables.JsonPathParsingFailure 500 এই ত্রুটিটি ঘটে যখন নীতিটি একটি JSON পাথ পার্স করতে এবং Source উপাদানে নির্দিষ্ট করা ফ্লো ভেরিয়েবল থেকে ডেটা বের করতে অক্ষম হয়। Source এলিমেন্টে উল্লেখিত ফ্লো ভেরিয়েবল বর্তমান প্রবাহে বিদ্যমান না থাকলে সাধারণত এটি ঘটে।
steps.extractvariables.SetVariableFailed 500 এই ত্রুটিটি ঘটে যদি নীতিটি একটি ভেরিয়েবলের মান সেট করতে না পারে৷ ত্রুটিটি সাধারণত ঘটে যদি আপনি একাধিক ভেরিয়েবলের মান নির্ধারণ করার চেষ্টা করেন যার নামগুলি নেস্টেড ডট-বিভাজিত বিন্যাসে একই শব্দ দিয়ে শুরু হয়।
steps.extractvariables.SourceMessageNotAvailable 500 এই ত্রুটিটি ঘটে যদি নীতির Source উপাদানে নির্দিষ্ট করা বার্তা পরিবর্তনশীল হয়:
  • সুযোগের বাইরে (নির্দিষ্ট প্রবাহে উপলব্ধ নয় যেখানে নীতিটি কার্যকর করা হচ্ছে) বা
  • সমাধান করা যাবে না (সংজ্ঞায়িত করা হয় না)
steps.extractvariables.UnableToCast 500 এই ত্রুটিটি ঘটে যদি নীতিটি একটি ভেরিয়েবলে নিষ্কাশিত মান কাস্ট করতে অক্ষম হয়৷ সাধারণত এটি ঘটে যদি আপনি একটি ডেটা টাইপের মান অন্য ডেটা টাইপের ভেরিয়েবলে সেট করার চেষ্টা করেন।

স্থাপনার ত্রুটি

আপনি যখন এই নীতি সম্বলিত একটি প্রক্সি স্থাপন করেন তখন এই ত্রুটিগুলি ঘটতে পারে৷

ত্রুটির নাম কারণ ঠিক করুন
NothingToExtract যদি নীতিতে URIPath , QueryParam , Header , FormParam , XMLPayload , বা JSONPayload এর কোনো উপাদান না থাকে, তাহলে API প্রক্সির স্থাপনা ব্যর্থ হয়, কারণ বের করার মতো কিছুই নেই।
NONEmptyPrefixMappedToEmptyURI XMLPayload এলিমেন্টের অধীনে Namespace এলিমেন্টে যদি নীতির একটি প্রিফিক্স সংজ্ঞায়িত করা থাকে, কিন্তু কোনো URI সংজ্ঞায়িত করা না থাকে তাহলে এই সমস্যাটি ঘটে।
DuplicatePrefix XMLPayload এলিমেন্টের অধীনে Namespace এলিমেন্টে নীতির একই প্রিফিক্স একাধিকবার সংজ্ঞায়িত থাকলে এই ত্রুটি ঘটে।
NoXPathsToEvaluate যদি নীতিতে XMLPayload উপাদানের মধ্যে XPath উপাদান না থাকে, তাহলে এই ত্রুটির সাথে API প্রক্সির স্থাপনা ব্যর্থ হয়৷
EmptyXPathExpression XMLPayload উপাদানের মধ্যে যদি নীতির একটি খালি XPath এক্সপ্রেশন থাকে, তাহলে API প্রক্সির স্থাপনা ব্যর্থ হয়৷
NoJSONPathsToEvaluate যদি নীতিতে JSONPayload উপাদানের মধ্যে JSONPath উপাদান না থাকে, তাহলে এই ত্রুটির সাথে API প্রক্সির স্থাপনা ব্যর্থ হয়।
EmptyJSONPathExpression XMLPayload উপাদানের মধ্যে যদি নীতির একটি খালি XPath এক্সপ্রেশন থাকে, তাহলে API প্রক্সির স্থাপনা ব্যর্থ হয়৷
MissingName যদি নীতির QueryParam , Header , FormParam বা Variable মতো নীতি উপাদানগুলির মধ্যে কোনো name বৈশিষ্ট্য না থাকে, যেখানে এটির প্রয়োজন হয়, তাহলে API প্রক্সির স্থাপনা ব্যর্থ হয়৷
PatternWithoutVariable যদি নীতিতে Pattern উপাদানের মধ্যে নির্দিষ্ট কোনো পরিবর্তনশীল না থাকে, তাহলে API প্রক্সির স্থাপনা ব্যর্থ হয়। Pattern উপাদানটির জন্য ভেরিয়েবলের নাম প্রয়োজন যেখানে নিষ্কাশিত ডেটা সংরক্ষণ করা হবে।
CannotBeConvertedToNodeset যদি নীতিতে একটি XPath এক্সপ্রেশন থাকে যেখানে Variable টাইপটিকে নোডসেট হিসাবে সংজ্ঞায়িত করা হয়, কিন্তু অভিব্যক্তিটিকে নোডসেটে রূপান্তর করা যায় না, তাহলে API প্রক্সির স্থাপনা ব্যর্থ হয়৷
JSONPathCompilationFailed নীতিটি একটি নির্দিষ্ট JSON পাথ কম্পাইল করতে পারেনি৷
InstantiationFailed নীতি তাত্ক্ষণিক করা যায়নি.
XPathCompilationFailed যদি উপসর্গ বা XPath উপাদানে ব্যবহৃত মান নীতিতে ঘোষিত কোনো নামস্থানের অংশ না হয়, তাহলে API প্রক্সির স্থাপনা ব্যর্থ হয়।
InvalidPattern যদি নীতির মধ্যে URIPath , QueryParam , Header , FormParam , XMLPayload বা JSONPayload এর মতো উপাদানগুলির মধ্যে Pattern উপাদানের সংজ্ঞাটি অবৈধ হয়, তাহলে API প্রক্সির স্থাপনা ব্যর্থ হয়৷

ফল্ট ভেরিয়েবল

যখন এই নীতি রানটাইমে একটি ত্রুটি ট্রিগার করে তখন এই ভেরিয়েবলগুলি সেট করা হয়৷ আরও তথ্যের জন্য, নীতি ত্রুটি সম্পর্কে আপনার যা জানা দরকার তা দেখুন।

ভেরিয়েবল যেখানে উদাহরণ
fault.name=" fault_name " fault_name হল ফল্টের নাম, যা উপরে রানটাইম ত্রুটির সারণীতে তালিকাভুক্ত করা হয়েছে। ফল্ট নামটি ফল্ট কোডের শেষ অংশ। fault.name = "SourceMessageNotAvailable"
extractvariables. policy_name .failed policy_name হল সেই নীতির ব্যবহারকারী-নির্দিষ্ট নাম যা ত্রুটিটি ফেলেছে। extractvariables.EV-ParseJsonResponse.failed = true

উদাহরণ ত্রুটি প্রতিক্রিয়া

{
   "fault":{
      "detail":{
         "errorcode":"steps.extractvariables.SourceMessageNotAvailable"
      },
      "faultstring":"request message is not available for ExtractVariable: EV-ParseJsonResponse"
   }
}

উদাহরণ দোষ নিয়ম

<FaultRule name="Extract Variable Faults">
    <Step>
        <Name>AM-CustomErrorMessage</Name>
        <Condition>(fault.name = "SourceMessageNotAvailable") </Condition>
    </Step>
    <Condition>(extractvariables.EM-ParseJsonResponse.failed = true) </Condition>
</FaultRule>

স্কিমা

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

কাস্টম অ্যানালিটিক্স ব্যবহার করে এপিআই বার্তার বিষয়বস্তু বিশ্লেষণ করুন

ভেরিয়েবল রেফারেন্স