OASValidation নীতি

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

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

OASValidation (OpenAPI স্পেসিফিকেশন যাচাইকরণ) নীতি আপনাকে OpenAPI 3.0 স্পেসিফিকেশন (JSON বা YAML)-এর সাথে ইনকামিং অনুরোধ বা উত্তর মেসেজ যাচাই করতে দেয়। কোন কন্টেন্ট যাচাই করা হয়? তা দেখুন।

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

রিসোর্স ম্যানেজ করুন-এ যেমন বর্ণনা করা হয়েছে, সেই অনুযায়ী UI বা API ব্যবহার করে API প্রক্সি বান্ডেলে রিসোর্স হিসেবে OpenAPI স্পেসিফিকেশন যোগ করুন।

কোন কন্টেন্ট যাচাই করা হয়?

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

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

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

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

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

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

নমুনা

OpenAPI 3.0 স্পেসিফিকেশন অনুযায়ী মেসেজ যাচাই করার জন্য আপনি কীভাবে OASValidation নীতি ব্যবহার করতে পারেন তার কিছু উদাহরণ নিচে দেওয়া হল।

অনুরোধের মেসেজ যাচাই করুন

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

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

মেসেজের বিষয়বস্তু OpenAPI স্পেসিফিকেশন অনুযায়ী না হলে, 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> এলিমেন্ট

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

ডিফল্ট ভ্যালু নিচে ডিফল্ট নীতি ট্যাব দেখুন
আবশ্যক? প্রয়োজনীয়
Type জটিল অবজেক্ট
পেরেন্ট এলিমেন্ট প্রযোজ্য নয়
চাইল্ড এলিমেন্ট <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> এলিমেন্ট সব নীতির ক্ষেত্রে প্রযোজ্য।

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

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

সিন্ট্যাক্স

<PolicyElement>
  <DisplayName>policy_display_name</DisplayName>
  ...
</PolicyElement>

উদাহরণ

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

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

<OASResource>

যাচাই করার জন্য OpenAPI স্পেসিফিকেশন উল্লেখ করে। আপনি এই ফাইলটি স্টোর করতে পারবেন:

  • API প্রক্সি বান্ডেলে /apiproxy/resources/oas-এর অধীনে API প্রক্সি স্কোপে
  • API প্রক্সি এডিটরের নেভিগেটর ভিউয়ের Resources বিভাগে।

আরও তথ্যের জন্য, রিসোর্স ম্যানেজ করুন দেখুন।

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

ডিফল্ট ভ্যালু কোনওটিই নয়
আবশ্যক? প্রয়োজনীয়
Type স্ট্রিং
পেরেন্ট এলিমেন্ট <OASValidation>
চাইল্ড এলিমেন্ট কোনওটিই নয়

সিন্ট্যাক্স

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

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

উদাহরণ

নিম্নলিখিত উদাহরণে my-spec.yaml স্পেসিফিকেশন উল্লেখ করা হয়েছে যা API প্রক্সি বান্ডেলে /apiproxy/resources/oas-এর অধীনে স্টোর করা আছে:

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

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

<Options>

নীতির জন্য বিকল্প কনফিগার করে।

ডিফল্ট ভ্যালু প্রযোজ্য নয়
আবশ্যক? ঐচ্ছিক
Type জটিল ধরন
পেরেন্ট এলিমেন্ট <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>

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

<OASValidation> এলিমেন্টের জন্য continueOnError অ্যাট্রিবিউট true হিসেবে সেট করে, যাচাইকরণ সংক্রান্ত সমস্যার পরেও ফ্লো এক্সিকিউশন চালিয়ে যাওয়া হবে কিনা তা আপনি নিয়ন্ত্রণ করতে পারবেন।

ডিফল্ট ভ্যালু মিথ্যা
আবশ্যক? ঐচ্ছিক
Type বুলিয়ান
পেরেন্ট এলিমেন্ট <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>

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

ডিফল্ট ভ্যালু প্রযোজ্য নয়
আবশ্যক? ঐচ্ছিক
Type জটিল ধরন
পেরেন্ট এলিমেন্ট <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 স্পেসিফিকেশনে সংজ্ঞায়িত করা নেই।

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

ডিফল্ট ভ্যালু সত্য
আবশ্যক? বুলিয়ান
Type জটিল ধরন
পেরেন্ট এলিমেন্ট <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 স্পেসিফিকেশনে সংজ্ঞায়িত করা নেই, তাহলে নীতির আচরণ কনফিগার করে।

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

ডিফল্ট ভ্যালু সত্য
আবশ্যক? বুলিয়ান
Type জটিল ধরন
পেরেন্ট এলিমেন্ট <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 স্পেসিফিকেশনে সংজ্ঞায়িত করা নেই।

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

ডিফল্ট ভ্যালু সত্য
আবশ্যক? বুলিয়ান
Type জটিল ধরন
পেরেন্ট এলিমেন্ট <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-এ সেট করা হয়, কারণ আপনাকে সাধারণত ক্লায়েন্ট অ্যাপ থেকে ইনবাউন্ড অনুরোধ মূল্যায়ন করতে হবে। উত্তর মেসেজ মূল্যায়ন করতে উত্তর বিকল্পে সেট করুন। অনুরোধের ফ্লোতে নীতি অ্যাটাচ করা থাকলে অনুরোধের মেসেজ এবং উত্তরের ফ্লোতে নীতি অ্যাটাচ করা থাকলে উত্তরের মেসেজ অটোমেটিক মূল্যায়ন করতে মেসেজ হিসেবে সেট করুন।

ডিফল্ট ভ্যালু অনুরোধ
আবশ্যক? ঐচ্ছিক
Type স্ট্রিং
পেরেন্ট এলিমেন্ট <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) দ্বারা সংজ্ঞায়িত করা হয়। রেফারেন্সের জন্য, নীতি স্কিমা GitHub-এ উপলভ্য।

সমস্যার কোড

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

রানটাইম সমস্যা

নীতি এক্সিকিউট করার সময় এই সমস্যা হতে পারে।

সমস্যার কোড HTTP স্ট্যাটাস কারণ
steps.oasvalidation.Failed 500 প্রদান করা OpenAPI স্পেসিফিকেশন অনুযায়ী অনুরোধ মেসেজের বডি যাচাই করা যাচ্ছে না।
steps.oasvalidation.SourceMessageNotAvailable 500

নীতির <Source> এলিমেন্টে নির্দিষ্ট করা ভেরিয়েবল হয় স্কোপের বাইরে আছে অথবা সমাধান করা যাচ্ছে না।

steps.oasvalidation.NotMessageVariable 500

<Source> এলিমেন্টটি এমন একটি ভেরিয়েবেলে সেট করা আছে যা মেসেজ ধরনের নয়।

ডিপ্লয়মেন্ট সংক্রান্ত সমস্যা

এই নীতি থাকা কোনও প্রক্সি আপনি প্রয়োগ করলে, এই সমস্যা হতে পারে।

সমস্যার নাম কারণ
ResourceDoesNotExist <OASResource> এলিমেন্টে উল্লেখ করা OpenAPI স্পেসিফিকেশন নেই।
ResourceCompileFailed ডেপ্লয়মেন্টে অন্তর্ভুক্ত OpenAPI স্পেসিফিকেশনে এমন কিছু সমস্যা রয়েছে যার জন্য এটি কম্পাইল করা যাচ্ছে না। সাধারণত এর অর্থ হল, স্পেসিফিকেশনটি একটি সুগঠিত OpenAPI স্পেসিফিকেশন ৩.০ নয়।
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

কাজ করে এমন OpenAPI স্পেসিফিকেশন ফিচার

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

বিভাগ কাজ করে কাজ করে না
ডেটার ধরনের ফর্ম্যাট বুলিয়ান
তারিখ
তারিখ-সময়
ডবল
ইমেল
ফ্লোট
int32/int64
ipv4/ipv6
md5
sha1/sha256/sha512
স্ট্রিং
uri
uri-টেমপ্লেট
uuid
বাইনারি
বাইট
পাসওয়ার্ড
ডিসক্রিমিনেটর অবজেক্ট ম্যাপিং
propertyName
প্রযোজ্য নয়
মিডিয়া টাইপ অবজেক্ট স্কিমা এনকোডিং
উদাহরণ
উদাহরণ
অপারেশন অবজেক্ট parameters
requestBody
responses
security (আংশিক সহায়তা)
কলব্যাক
বন্ধ করা হয়েছে
সার্ভার
প্যারামিটার অবজেক্ট allowEmptyValue
in (query, header, path)
required
responses
schema
style (deepObject, form, formmatrix, label, pipeDelimited, simple, spaceDelimited)

মনে রাখবেন: deepObject শুধুমাত্র স্ট্রিং প্যারামিটার সাপোর্ট করে; অ্যারে এবং নেস্টেড অবজেক্ট সাপোর্ট করে না।
allowReserved
deprecated
example
examples
content
পাথ অবজেক্ট delete
get
head
options
parameters
patch
post
put
trace
variables
সার্ভার
অনুরোধের বডি অবজেক্ট application/json
application/hal+json
application/x-www-form-urlencoded (encoding অবজেক্ট কাজ করে না)
কন্টেন্ট
প্রয়োজনীয়
application/xml
multipart/form-data
text/plain
text/xml
Response অবজেক্ট application/json
application/hal+json
application/x-www-form-urlencoded (encoding অবজেক্ট কাজ করে না)
content
headers
application/xml
links
text/plain
text/xml
Responses অবজেক্ট default
HTTP স্ট্যাটাস কোড
প্রযোজ্য নয়
স্কিমা অবজেক্ট $ref
additionalProperties (শুধুমাত্র বুলিয়ান ফ্ল্যাগ ভ্যারিয়েন্ট)
allOf (additionalProperties যদি false হয় তাহলে উপেক্ষা করা হয়)
anyOf
enum
exclusiveMaximum/exclusiveMinimum
format
items
maximum/minimum
maxItems/minItems
maxLength/minLength
maxProperties/minProperties
multipleOf
not
nullable
oneOf
pattern
properties
required
title
type
uniqueItems
deprecated
example
readOnly
writeOnly
xml
নিরাপত্তা স্কিম অবজেক্ট (header, query)-এ (type, http হলে উপেক্ষা করা হয়)
নাম
ধরন (apiKey, http)
bearerFormat
flows
openIdConnectUrl
scheme
সার্ভার অবজেক্ট url
variables
একাধিক সার্ভারের সংজ্ঞা

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