OAS যাচাইকরণ নীতি

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

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

OASValidation (OpenAPI Specification Validation) পলিসি আপনাকে একটি OpenAPI 3.0 স্পেসিফিকেশন (JSON বা YAML)-এর বিপরীতে আগত অনুরোধ বা প্রতিক্রিয়া বার্তা যাচাই করার সুযোগ দেয়। দেখুন কোন বিষয়বস্তু যাচাই করা হয়?

OASValidation পলিসিটি সেই OpenAPI স্পেসিফিকেশনের নাম নির্দিষ্ট করে, যা পলিসিটি সংযুক্ত থাকা ধাপটি কার্যকর হওয়ার সময় যাচাইকরণের জন্য ব্যবহার করা হবে। OpenAPI স্পেসিফিকেশনটি API প্রক্সি বান্ডেলের মধ্যে apiproxy/resources/oas - এই স্ট্যান্ডার্ড অবস্থানে একটি রিসোর্স হিসেবে সংরক্ষিত থাকে। OpenAPI স্পেসিফিকেশনটির এক্সটেনশন অবশ্যই .json , .yml বা .yaml হতে হবে।

রিসোর্স ব্যবস্থাপনা (Manage resources) অংশে বর্ণিত পদ্ধতি অনুযায়ী UI বা API ব্যবহার করে একটি API প্রক্সি বান্ডেলে একটি OpenAPI স্পেসিফিকেশনকে রিসোর্স হিসেবে যোগ করুন।

কোন বিষয়বস্তু যাচাই করা হয়েছে?

নিম্নলিখিত সারণিতে OASValidation পলিসি দ্বারা যাচাইকৃত অনুরোধ বার্তার বিষয়বস্তু উপাদান অনুসারে সংক্ষিপ্তভাবে তুলে ধরা হয়েছে।

উপাদান অনুরোধ যাচাইকরণ
বেসপাথ এপিআই প্রক্সি দ্বারা সংজ্ঞায়িত বেসপাথ যাচাই করে; ওপেনএপিআই স্পেসিফিকেশনে নির্দিষ্ট করা বেসপাথ উপেক্ষা করে।
পথ অনুরোধের পাথটি (বেসপ্যাথ ছাড়া) ওপেনএপিআই স্পেসিফিকেশনে সংজ্ঞায়িত পাথ প্যাটার্নগুলোর কোনো একটির সাথে মেলে কিনা, তা যাচাই করে।
ক্রিয়া যাচাই করে যে, OpenAPI স্পেসিফিকেশনে পাথটির জন্য ভার্বটি সংজ্ঞায়িত আছে কিনা।
অনুরোধ বার্তার মূল অংশ
  • প্রয়োজন হলে, অনুরোধে বার্তার মূল অংশের অস্তিত্ব যাচাই করে।
  • ঐচ্ছিকভাবে, এটি ওপেনএপিআই স্পেসিফিকেশনে থাকা অপারেশনের রিকোয়েস্ট বডি স্কিমার সাথে মেসেজ বডিকে যাচাই করে। <ValidateMessageBody> ব্যবহার করে এই অপশনটি কনফিগার করুন।

দ্রষ্টব্য: এই পলিসিটি শুধুমাত্র তখনই OpenAPI স্পেসিফিকেশন অনুযায়ী একটি রিকোয়েস্ট মেসেজ বডি যাচাই করে, যখন Content-Type-টি application/json হিসেবে সেট করা থাকে। যদি কন্টেন্ট টাইপ application/json হিসেবে সেট করা না থাকে, তাহলে রিকোয়েস্ট মেসেজ বডি যাচাইকরণটি স্বয়ংক্রিয়ভাবে সম্পন্ন হয়ে যাবে (প্রকৃতপক্ষে কন্টেন্ট যাচাই না করেই)।

প্যারামিটার
  • অনুরোধে পাথ, হেডার, কোয়েরি এবং কুকি প্যারামিটারসহ প্রয়োজনীয় প্যারামিটারগুলো উপস্থিত আছে কিনা তা যাচাই করে।
  • প্যারামিটারের মানগুলো ওপেনএপিআই স্পেসিফিকেশনে সংজ্ঞায়িত মানগুলোর সাথে মেলে কিনা তা যাচাই করে।
  • ঐচ্ছিকভাবে, অনুরোধে এমন কোনো প্যারামিটার আছে কিনা তা যাচাই করে যা ওপেনএপিআই স্পেসিফিকেশনে সংজ্ঞায়িত নয়। <AllowUnspecifiedParameters> ব্যবহার করে এই বিকল্পটি কনফিগার করুন।

নিম্নলিখিত সারণিতে OASValidation পলিসি দ্বারা যাচাইকৃত প্রতিক্রিয়া বার্তার বিষয়বস্তু উপাদান অনুসারে সংক্ষিপ্তভাবে তুলে ধরা হয়েছে।

উপাদান প্রতিক্রিয়া যাচাইকরণ
পথ অনুরোধের পাথটি (বেসপ্যাথ ছাড়া) ওপেনএপিআই স্পেসিফিকেশনে সংজ্ঞায়িত পাথ প্যাটার্নগুলোর কোনো একটির সাথে মেলে কিনা, তা যাচাই করে।
ক্রিয়া যাচাই করে যে, OpenAPI স্পেসিফিকেশনে পাথটির জন্য ভার্বটি সংজ্ঞায়িত আছে কিনা।
প্রতিক্রিয়া বার্তার মূল অংশ
  • প্রয়োজন হলে, রেসপন্সে মেসেজ বডির অস্তিত্ব যাচাই করে।
  • এটি যাচাই করে যে, ওপেনএপিআই স্পেসিফিকেশনে থাকা রেসপন্স হেডারগুলো রেসপন্স মেসেজে উপস্থিত আছে এবং রেসপন্স হেডারগুলোর মান স্কিমার সাথে মেলে।
  • ঐচ্ছিকভাবে, এটি ওপেনএপিআই স্পেসিফিকেশনে থাকা অপারেশনের রেসপন্স বডি স্কিমার সাথে মেসেজ বডিকে যাচাই করে। <ValidateMessageBody> ব্যবহার করে এই অপশনটি কনফিগার করুন।

নমুনা

নিম্নলিখিত উদাহরণগুলিতে এমন কিছু পদ্ধতি দেখানো হয়েছে, যার মাধ্যমে আপনি একটি OpenAPI 3.0 স্পেসিফিকেশনের সাথে বার্তা যাচাই করার জন্য OASValidation পলিসি ব্যবহার করতে পারেন।

অনুরোধ বার্তা যাচাই করুন

নিম্নলিখিত উদাহরণে, myoaspolicy পলিসিটি my-spec.json ওপেনএপিআই স্পেসিফিকেশনে সংজ্ঞায়িত অপারেশনের রিকোয়েস্ট মেসেজ বডি স্কিমার সাথে রিকোয়েস্ট মেসেজের বডিকে যাচাই করে।

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.json</OASResource>
   <Options>
      <ValidateMessageBody>true</ValidateMessageBody>
   </Options>
   <Source>request</Source>
</OASValidation>

যদি বার্তার মূল অংশটি ওপেনএপিআই স্পেসিফিকেশন মেনে না চলে, তাহলে policies.oasvalidation.Failed ত্রুটি ফেরত দেওয়া হয়।

প্যারামিটার যাচাই করুন

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

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>false</Header>
         <Query>false</Query>
         <Cookie>false</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

<OASValidation> উপাদান

ওপেনএপিআই স্পেসিফিকেশন যাচাইকরণ নীতি নির্ধারণ করে।

ডিফল্ট মান নিচে ডিফল্ট পলিসি ট্যাবটি দেখুন
প্রয়োজন? প্রয়োজনীয়
প্রকার জটিল বস্তু
মূল উপাদান প্রযোজ্য নয়
শিশু উপাদান <DisplayName>
<OASResource>
<Source>
<Options>
<Source>

সিনট্যাক্স

<OASValidation> এলিমেন্টটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<OASValidation
  continueOnError="[true|false]"
  enabled="[true|false]"
  name="policy_name"
>
    <!-- All OASValidation child elements are optional except OASResource -->
    <DisplayName>policy_display_name</DisplayName>
    <OASResource>validation_JSON_or_YAML</OASResource>
    <Options>
        <ValidateMessageBody>[true|false]</ValidateMessageBody>
        <AllowUnspecifiedParameters>
            <Header>[true|false]</Header>
            <Query>[true|false]</Query>
            <Cookie>[true|false]</Cookie>
        </AllowUnspecifiedParameters>
    </Options>
    <Source>message_to_validate</Source>
</OASValidation>

ডিফল্ট নীতি

নিম্নলিখিত উদাহরণটি দেখায় যে আপনি যখন Apigee UI-তে আপনার ফ্লো-তে একটি OAS ভ্যালিডেশন পলিসি যোগ করেন তখন ডিফল্ট সেটিংস কেমন থাকে:

<OASValidation continueOnError="false" enabled="true" name="OpenAPI-Spec-Validation-1">
    <DisplayName>OpenAPI Spec Validation-1</DisplayName>
    <Properties/>
    <Source>request</Source>
    <OASResource>oas://OpenAPI-Spec-Validation-1.yaml</OASResource>
</OASValidation>

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

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

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

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

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

চাইল্ড এলিমেন্ট রেফারেন্স

এই অংশে <OASValidation> এর চাইল্ড এলিমেন্টগুলো বর্ণনা করা হয়েছে।

<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> উপাদানটির কোনো বৈশিষ্ট্য বা শিশু উপাদান নেই।

<OASResource>

যাচাই করার জন্য ওপেনএপিআই স্পেসিফিকেশন নির্দিষ্ট করে। আপনি এই ফাইলটি সংরক্ষণ করতে পারেন:

  • এপিআই প্রক্সি বান্ডেলের অন্তর্গত /apiproxy/resources/oas এর এপিআই প্রক্সি স্কোপে।
  • এপিআই প্রক্সি এডিটরের নেভিগেটর ভিউ-এর Resources বিভাগে।

আরও তথ্যের জন্য, ‘সম্পদ ব্যবস্থাপনা’ দেখুন।

আপনি একটি মেসেজ টেমপ্লেট, যেমন {oas.resource.url} ব্যবহার করে ওপেনএপিআই স্পেসিফিকেশন নির্দিষ্ট করতে পারেন। এক্ষেত্রে, রানটাইমে ফ্লো ভ্যারিয়েবল oas.resource.url (কার্লি ব্র্যাকেটের মধ্যে) এর মান মূল্যায়ন করা হবে এবং পেলোড স্ট্রিং-এ প্রতিস্থাপন করা হবে। আরও তথ্যের জন্য, মেসেজ টেমপ্লেট দেখুন।

ডিফল্ট মান কোনোটিই না
প্রয়োজন? প্রয়োজনীয়
প্রকার স্ট্রিং
মূল উপাদান <OASValidation>
শিশু উপাদান কোনোটিই না

সিনট্যাক্স

<OASResource> এলিমেন্টটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   ...
</OASValidation>

উদাহরণ

নিম্নলিখিত উদাহরণটি API প্রক্সি বান্ডেলের অন্তর্গত /apiproxy/resources/oas এ সংরক্ষিত my-spec.yaml স্পেসিফিকেশনটিকে নির্দেশ করে:

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
</OASValidation>

<OASResource> এলিমেন্টটির কোনো অ্যাট্রিবিউট বা চাইল্ড এলিমেন্ট নেই।

<বিকল্পসমূহ>

পলিসির জন্য বিকল্পসমূহ নির্ধারণ করে।

ডিফল্ট মান প্রযোজ্য নয়
প্রয়োজন? ঐচ্ছিক
প্রকার জটিল প্রকার
মূল উপাদান <OASValidation>
শিশু উপাদান <ValidateMessageBody>
<AllowUnspecifiedParameters>

সিনট্যাক্স

<Options> এলিমেন্টটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <ValidateMessageBody>[true|false]</ValidateMessageBody>
      <AllowUnspecifiedParameters>
         <Header>[true|false]</Header>
         <Query>[true|false]</Query>
         <Cookie>[true|false]</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

উদাহরণ

নিম্নলিখিত উদাহরণটি পলিসির জন্য অপশনগুলো কনফিগার করে। প্রতিটি অপশন নিচে আরও বিস্তারিতভাবে বর্ণনা করা হয়েছে।

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <ValidateMessageBody>false</ValidateMessageBody>
      <AllowUnspecifiedParameters>
         <Header>false</Header>
         <Query>false</Query>
         <Cookie>false</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

<ValidateMessageBody>

পলিসিটি ওপেনএপিআই স্পেসিফিকেশনে থাকা অপারেশনের রিকোয়েস্ট বডি স্কিমার সাথে মেসেজ বডি যাচাই করবে কিনা তা নির্দিষ্ট করে। মেসেজ বডির বিষয়বস্তু যাচাই করতে ' true' সেট করুন। শুধুমাত্র মেসেজ বডিটির অস্তিত্ব যাচাই করতে ' false' সেট করুন।

<OASValidation> এলিমেন্টের continueOnError অ্যাট্রিবিউটটিকে true সেট করার মাধ্যমে আপনি নিয়ন্ত্রণ করতে পারেন যে, কোনো ভ্যালিডেশন এররের পর ফ্লো এক্সিকিউশন অব্যাহত থাকবে কিনা।

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

সিনট্যাক্স

<ValidateMessageBody> এলিমেন্টটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
         <ValidateMessageBody>[true|false]</ValidateMessageBody>
   </Options>
   ...
</OASValidation>

উদাহরণ

নিম্নলিখিত উদাহরণটি বার্তার মূল অংশের বিষয়বস্তু যাচাই করতে সক্ষম করে:

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <ValidateMessageBody>true</ValidateMessageBody>
   </Options>
</OASValidation>

<AllowUnspecifiedParameters>

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

ডিফল্ট মান প্রযোজ্য নয়
প্রয়োজন? ঐচ্ছিক
প্রকার জটিল প্রকার
মূল উপাদান <Options>
শিশু উপাদান <Header>
<Query>
<Cookie>

সিনট্যাক্স

<AllowUnspecifiedParameters> এলিমেন্টটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>[true|false]</Header>
         <Query>[true|false]</Query>
         <Cookie>[true|false]</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

উদাহরণ

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

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>false</Header>
         <Query>false</Query>
         <Cookie>false</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

অনুরোধে এমন হেডার প্যারামিটার থাকলে, যা ওপেনএপিআই স্পেসিফিকেশনে সংজ্ঞায়িত নয়, সেক্ষেত্রে পলিসির আচরণ নির্ধারণ করে।

OpenAPI স্পেসিফিকেশনে সংজ্ঞায়িত নয় এমন হেডার প্যারামিটার অনুরোধে অন্তর্ভুক্ত করার অনুমতি দিতে, এই প্যারামিটারটি ' true' সেট করুন। অন্যথায়, পলিসি এক্সিকিউশন ব্যর্থ করতে এই প্যারামিটারটি ' false' সেট করুন।

ডিফল্ট মান সত্য
প্রয়োজন? বুলিয়ান
প্রকার জটিল প্রকার
মূল উপাদান <AllowUnspecifiedParameters>
শিশু উপাদান কোনোটিই না

সিনট্যাক্স

<Header> এলিমেন্টটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>[true|false]</Header>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

উদাহরণ

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

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>false</Header>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

<Query> ( <AllowUnspecifiedParameters> এর চাইল্ড)

অনুরোধে এমন কোনো কোয়েরি প্যারামিটার থাকলে, যা ওপেনএপিআই স্পেসিফিকেশনে সংজ্ঞায়িত নয়, সেক্ষেত্রে পলিসিটির আচরণ নির্ধারণ করে।

OpenAPI স্পেসিফিকেশনে সংজ্ঞায়িত নয় এমন কোয়েরি প্যারামিটার অনুরোধে নির্দিষ্ট করার অনুমতি দিতে, এই প্যারামিটারটি ' true' সেট করুন। অন্যথায়, পলিসি এক্সিকিউশন ব্যর্থ করতে এই প্যারামিটারটি ' false' সেট করুন।

ডিফল্ট মান সত্য
প্রয়োজন? বুলিয়ান
প্রকার জটিল প্রকার
মূল উপাদান <AllowUnspecifiedParameters>
শিশু উপাদান কোনোটিই না

সিনট্যাক্স

<Query> এলিমেন্টটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Query>[true|false]</Query>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

উদাহরণ

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

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Query>false</Query>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

অনুরোধে এমন কুকি প্যারামিটার থাকলে, যা ওপেনএপিআই স্পেসিফিকেশনে সংজ্ঞায়িত নয়, সেক্ষেত্রে পলিসির আচরণ নির্ধারণ করে।

OpenAPI স্পেসিফিকেশনে সংজ্ঞায়িত নয় এমন কুকি প্যারামিটার অনুরোধে নির্দিষ্ট করার অনুমতি দিতে, এই প্যারামিটারটি ' true' সেট করুন। অন্যথায়, পলিসি এক্সিকিউশন ব্যর্থ করতে এই প্যারামিটারটি ' false' সেট করুন।

ডিফল্ট মান সত্য
প্রয়োজন? বুলিয়ান
প্রকার জটিল প্রকার
মূল উপাদান <AllowUnspecifiedParameters>
শিশু উপাদান কোনোটিই না

সিনট্যাক্স

<Cookie> এলিমেন্টটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Query>[true|false]</Query>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

উদাহরণ

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

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Cookie>false</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

<Source>

JSON পেলোড অ্যাটাকের বিরুদ্ধে মূল্যায়ন করার জন্য JSON মেসেজ। এটি সাধারণত request এ সেট করা হয়, কারণ আপনার সাধারণত ক্লায়েন্ট অ্যাপ থেকে আসা ইনবাউন্ড রিকোয়েস্টগুলো মূল্যায়ন করার প্রয়োজন হবে। রেসপন্স মেসেজ মূল্যায়ন করতে 'response'- এ সেট করুন। যখন পলিসিটি রিকোয়েস্ট ফ্লো-এর সাথে সংযুক্ত করা হয় তখন রিকোয়েস্ট মেসেজ এবং যখন পলিসিটি রেসপন্স ফ্লো-এর সাথে সংযুক্ত করা হয় তখন রেসপন্স মেসেজ স্বয়ংক্রিয়ভাবে মূল্যায়ন করতে 'message'- এ সেট করুন।

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

সিনট্যাক্স

<Source> এলিমেন্টটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Source>[message|request|response]</Source>
   ...
</OASValidation>

উদাহরণ

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

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Source>message</Source>
</OASValidation>

<Source> এলিমেন্টটির কোনো অ্যাট্রিবিউট বা চাইল্ড এলিমেন্ট নেই।

স্কিমা

প্রতিটি পলিসি টাইপ একটি XML স্কিমা ( .xsd ) দ্বারা সংজ্ঞায়িত করা হয়। তথ্যের জন্য, পলিসি স্কিমাগুলো গিটহাবে পাওয়া যাবে।

ত্রুটি কোড

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

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

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

ফল্ট কোড HTTP স্থিতি কারণ
steps.oasvalidation.Failed 500 প্রদত্ত OpenAPI স্পেসিফিকেশনের বিরুদ্ধে অনুরোধের বার্তার অংশ যাচাই করা যাবে না।
steps.oasvalidation.SourceMessageNotAvailable 500

নীতির <Source> উপাদানে উল্লেখ করা পরিবর্তনশীলটি হয় সুযোগের বাইরে বা সমাধান করা যায় না।

steps.oasvalidation.NotMessageVariable 500

<Source> উপাদানটি একটি ভেরিয়েবলে সেট করা হয়েছে যা বার্তা টাইপের নয়।

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

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

ত্রুটির নাম কারণ
ResourceDoesNotExist <OASResource> উপাদানে উল্লেখিত OpenAPI স্পেসিফিকেশন বিদ্যমান নেই।
ResourceCompileFailed ওপেনএপিআই স্পেসিফিকেশন যা স্থাপনায় অন্তর্ভুক্ত করা হয়েছে এতে ত্রুটি রয়েছে যা এটিকে সংকলিত হতে বাধা দেয়। এটি সাধারণত নির্দেশ করে যে স্পেসিফিকেশনটি একটি সুগঠিত OpenAPI স্পেসিফিকেশন 3.0 নয়।
BadResourceURL <OASResource> উপাদানে উল্লেখিত OpenAPI স্পেসিফিকেশন প্রক্রিয়া করা যাবে না। ফাইলটি JSON বা YAML ফাইল না হলে বা ফাইলের URL সঠিকভাবে নির্দিষ্ট না হলে এটি ঘটতে পারে।

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

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

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

সমর্থিত ওপেনএপিআই স্পেসিফিকেশনের বৈশিষ্ট্যসমূহ

OASValidation পলিসিটি নিম্নলিখিত সারণীতে বিভাগ অনুসারে সংক্ষিপ্তভাবে বর্ণিত OpenAPI স্পেসিফিকেশনের বৈশিষ্ট্যগুলিকে সমর্থন করে। যে বৈশিষ্ট্যগুলি সমর্থিত নয়, সেগুলিও তালিকাভুক্ত করা হয়েছে।

বিভাগ সমর্থিত সমর্থিত নয়
ডেটা টাইপ ফর্ম্যাট বুলিয়ান
তারিখ
তারিখ-সময়
দ্বিগুণ
ইমেইল
ভাসতে
int32/int64
আইপিভি৪/আইপিভি৬
md5
sha1/sha256/sha512
স্ট্রিং
ইউরি
ইউআরআই-টেমপ্লেট
uuid
বাইনারি
বাইট
পাসওয়ার্ড
বৈষম্যকারী বস্তু ম্যাপিং
সম্পত্তির নাম
প্রযোজ্য নয়
মিডিয়া টাইপ অবজেক্ট স্কিমা এনকোডিং
উদাহরণ
উদাহরণ
অপারেশন অবজেক্ট প্যারামিটার
অনুরোধের মূল অংশ
প্রতিক্রিয়া
নিরাপত্তা (আংশিক সমর্থন)
কলব্যাক
অপ্রচলিত
সার্ভার
প্যারামিটার অবজেক্ট allowEmptyValue
( query , header , path ) এ
প্রয়োজনীয়
প্রতিক্রিয়া
স্কিমা
স্টাইল ( deepObject , form , formmatrix , label , pipeDelimited , simple , spaceDelimited )

দ্রষ্টব্য: deepObject শুধুমাত্র স্ট্রিং প্যারামিটার সমর্থন করে; অ্যারে এবং নেস্টেড অবজেক্ট সমর্থিত নয়।
সংরক্ষিত অনুমতি দিন
অপ্রচলিত
উদাহরণ
উদাহরণ
বিষয়বস্তু
পাথ অবজেক্ট মুছে ফেলুন
পেতে
মাথা
বিকল্পগুলি
প্যারামিটার
প্যাচ
পোস্ট
রাখুন
ট্রেস
ভেরিয়েবল
সার্ভার
অনুরোধের মূল বস্তু অ্যাপ্লিকেশন/জেসন
অ্যাপ্লিকেশন/হাল+জেসন
application/x-www-form-urlencoded ( encoding অবজেক্ট সমর্থিত নয়)
বিষয়বস্তু
প্রয়োজনীয়
অ্যাপ্লিকেশন/এক্সএমএল
মাল্টিপার্ট/ফর্ম-ডেটা
পাঠ্য/সাধারণ
টেক্সট/এক্সএমএল
প্রতিক্রিয়া বস্তু অ্যাপ্লিকেশন/জেসন
অ্যাপ্লিকেশন/হাল+জেসন
application/x-www-form-urlencoded ( encoding অবজেক্ট সমর্থিত নয়)
বিষয়বস্তু
হেডার
অ্যাপ্লিকেশন/এক্সএমএল
লিঙ্ক
পাঠ্য/সাধারণ
টেক্সট/এক্সএমএল
প্রতিক্রিয়া বস্তু ডিফল্ট
HTTP স্ট্যাটাস কোড
প্রযোজ্য নয়
স্কিমা বস্তু $ref
অতিরিক্ত বৈশিষ্ট্য (শুধুমাত্র বুলিয়ান ফ্ল্যাগ সংস্করণ)
allOf (যদি additionalProperties false হয় তবে এটি উপেক্ষা করা হবে)
যেকোনো
এনাম
এক্সক্লুসিভ ম্যাক্সিমাম/এক্সক্লুসিভ ন্যূনতম
ফর্ম্যাট
আইটেম
সর্বোচ্চ/সর্বনিম্ন
সর্বোচ্চ আইটেম/সর্বনিম্ন আইটেম
সর্বোচ্চ দৈর্ঘ্য/সর্বনিম্ন দৈর্ঘ্য
সর্বোচ্চ বৈশিষ্ট্য/সর্বনিম্ন বৈশিষ্ট্য
একাধিক
না
নালযোগ্য
অন্যতম
প্যাটার্ন
বৈশিষ্ট্য
প্রয়োজনীয়
শিরোনাম
প্রকার
অনন্য আইটেম
অপ্রচলিত
উদাহরণ
শুধুমাত্র পঠনযোগ্য
শুধুমাত্র লিখুন
এক্সএমএল
নিরাপত্তা স্কিম বস্তু ( header , query ) এর মধ্যে ( type http হলে উপেক্ষা করা হয় )
নাম
টাইপ ( apiKey , http )
বাহক বিন্যাস
প্রবাহ
openIdConnectUrl
পরিকল্পনা
সার্ভার অবজেক্ট ইউআরএল
ভেরিয়েবল
একাধিক সার্ভার সংজ্ঞা

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