خط‌مشی OASValidation

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

درباره خط‌مشی OASValidation

خط‌مشی OASValidation (اعتبارسنجی مشخصات OpenAPI) به شما امکان می‌دهد پیام درخواست یا پاسخ ورودی را دربرابر «مشخصات OpenAPI 3.0» (JSON یا YAML) اعتبارسنجی کنید. چه محتوایی اعتبار سنجی می‌شود؟ را ببینید.

خط‌مشی OASValidation نام «مشخصات OpenAPI» را برای استفاده در اعتبارسنجی هنگام اجرای مرحله‌ای که خط‌مشی به آن پیوست شده است مشخص می‌کند. «مشخصات OpenAPI» به‌عنوان منبعی در مکان استاندارد زیر در بسته پراکسی میانای برنامه‌سازی کاربردی ذخیره می‌شود: apiproxy/resources/oas. «مشخصات OpenAPI» باید پسوند .json، .yml، .yaml داشته باشد.

همان‌طور که در مدیریت منابع شرح داده شده است، بااستفاده از میانای کاربر یا API، یک «مشخصات OpenAPI» را به‌عنوان منبع به بسته پراکسی API اضافه کنید.

چه محتوایی معتبرسازی می‌شود؟

جدول زیر محتوای پیام درخواست را که توسط خط‌مشی OASValidation اعتبارسنجی شده است، براساس مؤلفه خلاصه می‌کند.

اجزا درخواست اعتبارسنجی
مسیر پایه مسیر پایه تعریف‌شده توسط پراکسی میانای برنامه‌سازی کاربردی را اعتبارسنجی می‌کند؛ مسیر پایه مشخص‌شده در «مشخصات OpenAPI» را نادیده می‌گیرد.
مسیر اعتبارسنجی می‌کند که مسیر درخواست (منهای مسیر پایه) با یکی از الگوهای مسیر تعریف‌شده در «مشخصات OpenAPI» مطابقت داشته باشد.
فعل اعتبارسنجی می‌کند که فعل برای مسیر در «مشخصات OpenAPI» تعریف شده باشد.
متن پیام درخواست
  • درصورت لزوم، وجود متن پیام را در درخواست اعتبارسنجی می‌کند.
  • به‌طور اختیاری، بدنه پیام را دربرابر طرح‌واره بدنه درخواست عملیات در «مشخصات OpenAPI» اعتبارسنجی می‌کند. این گزینه را بااستفاده از <ValidateMessageBody> پیکربندی کنید

توجه: این خط‌مشی فقط درصورتی بدنه پیام درخواست را براساس «مشخصات OpenAPI» اعتبارسنجی می‌کند که Content-Type روی application/json تنظیم شده باشد. اگر نوع محتوا روی application/json تنظیم نشده باشد، اعتبارسنجی بدنه پیام درخواست به‌طور خودکار انجام می‌شود (بدون اینکه محتوا واقعاً اعتبارسنجی شود).

پارامترها
  • اعتبارسنجی می‌کند که پارامترهای الزامی در درخواست وجود داشته باشند، ازجمله پارامترهای مسیر، سرایند، پُرسمان، و کوکی.
  • تأیید می‌کند که مقادیر پارامتر با مقادیر تعریف‌شده در «مشخصات OpenAPI» مطابقت داشته باشد.
  • درصورت تمایل، وجود پارامترهایی را که در «مشخصات OpenAPI» تعریف نشده‌اند در درخواست اعتبارسنجی می‌کند. این گزینه را بااستفاده از <AllowUnspecifiedParameters> پیکربندی کنید

جدول زیر محتوای پیام پاسخ را که توسط خط‌مشی OASValidation اعتبارسنجی شده است، براساس مؤلفه خلاصه می‌کند.

اجزا اعتبارسنجی پاسخ
مسیر اعتبارسنجی می‌کند که مسیر درخواست (منهای مسیر پایه) با یکی از الگوهای مسیر تعریف‌شده در «مشخصات OpenAPI» مطابقت داشته باشد.
فعل اعتبارسنجی می‌کند که فعل برای مسیر در «مشخصات OpenAPI» تعریف شده باشد.
متن پیام پاسخ
  • درصورت لزوم، وجود متن پیام را در پاسخ اعتبارسنجی می‌کند.
  • تأیید می‌کند که سرایندهای پاسخ در «مشخصات OpenAPI» در پیام پاسخ وجود داشته باشد و مقدار سرایندهای پاسخ با طرح‌واره مطابقت داشته باشد.
  • درصورت تمایل، بدنه پیام را دربرابر طرح‌واره بدنه پاسخ عملیات در «مشخصات OpenAPI» اعتبارسنجی می‌کند. این گزینه را بااستفاده از <ValidateMessageBody> پیکربندی کنید

نمونه‌ها

نمونه‌های زیر برخی‌از روش‌هایی را نشان می‌دهد که می‌توانید از خط‌مشی OASValidation برای اعتبارسنجی پیام‌ها دربرابر «مشخصات OpenAPI 3.0» استفاده کنید.

پیام اعتبارسنجی درخواست

در مثال زیر، خط‌مشی myoaspolicy بدنه پیام درخواست را دربرابر طرح‌واره بدنه پیام درخواست عملیات تعریف‌شده در «مشخصات OpenAPI» my-spec.json اعتبارسنجی می‌کند.

<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» را تعریف می‌کند.

مقدار پیش‌فرض برگه خط‌مشی پیش‌فرض را در زیر ببینید
الزامی است؟ الزامی
تایپ کردن شیء پیچیده
عنصر ولی نامربوط
عناصر فرزند <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>

خط‌مشی پیش‌فرض

مثال زیر تنظیمات پیش‌فرض را هنگام افزودن خط‌مشی «اعتبارسنجی OAS» به جریان در میانای کاربری Apigee نشان می‌دهد:

<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 کاراکتر باشد.

در صورت تمایل، از عنصر <DisplayName> برای برچسب گذاری خط مشی در ویرایشگر پروکسی UI مدیریت با نامی به زبان طبیعی دیگر استفاده کنید.

continueOnError نادرست اختیاری برای بازگرداندن خطا در صورت شکست خط مشی، روی "false" تنظیم کنید. این رفتار مورد انتظار برای اکثر سیاست ها است. روی "true" تنظیم کنید تا اجرای جریان حتی پس از شکست خط مشی ادامه یابد.
enabled درست است، واقعی اختیاری برای اجرای این خط‌مشی روی «درست» تنظیم کنید. برای «خاموش کردن» خط مشی، روی «نادرست» تنظیم کنید. این سیاست حتی اگر به یک جریان وابسته باشد اجرا نخواهد شد.
async نادرست منسوخ این ویژگی منسوخ شده است.

مرجع عنصر فرزند

این بخش عناصر فرزند <OASValidation> را شرح می‌دهد.

<DisplayName>

علاوه‌بر مشخصه name، از این مشخصه برای برچسب‌گذاری خط‌مشی در ویرایشگر پراکسی میانای کاربر مدیریت با نامی متفاوت و طبیعی‌تر استفاده کنید.

عنصر <DisplayName> برای همه خط‌مشی‌ها مشترک است.

مقدار پیش‌فرض نامربوط
الزامی است؟ اختیاری. اگر <DisplayName> را حذف کنید، مقدار مشخصه name خط‌مشی استفاده می‌شود
تایپ کردن رشته
عنصر ولی <PolicyElement>
عناصر فرزند هیچ‌کدام

عنصر <DisplayName> از نحو زیر استفاده می‌کند:

نحو

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

مثال

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

عنصر <DisplayName> هیچ مشخصه یا عنصر فرزندی ندارد.

<OASResource>

مشخصات OpenAPI را برای اعتبارسنجی مشخص می‌کند. می‌توانید این فایل را در این مکان‌ها ذخیره کنید:

  • در محدوده پراکسی میانای برنامه‌سازی کاربردی در /apiproxy/resources/oas در دسته پراکسی میانای برنامه‌سازی کاربردی
  • در بخش Resources نمای «ناوبر» ویرایشگر پراکسی میانای برنامه‌سازی کاربردی.

برای اطلاعات بیشتر، به مدیریت منابع مراجعه کنید.

می‌توانید «مشخصات OpenAPI» را بااستفاده از الگوی پیام، مثل {oas.resource.url}، مشخص کنید. در این حالت، مقدار متغیر جریان oas.resource.url (در آکولاد) ارزیابی می‌شود و در زمان اجرا در رشته بار مفید جایگزین می‌شود. برای اطلاعات بیشتر، به الگوهای پیام مراجعه کنید.

مقدار پیش‌فرض هیچ‌کدام
الزامی است؟ الزامی
تایپ کردن رشته
عنصر ولی <OASValidation>
عناصر فرزند هیچ‌کدام

نحو

عنصر <OASResource> از نحو زیر استفاده می‌کند:

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

مثال

نمونه زیر به مشخصات my-spec.yaml ارجاع می‌دهد که تحت /apiproxy/resources/oas در بسته پراکسی میانای برنامه‌سازی کاربردی ذخیره شده است:

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

مشخص می‌کند که آیا خط‌مشی باید بدنه پیام را دربرابر طرح‌واره بدنه درخواست عملیات در «مشخصات OpenAPI» اعتبارسنجی کند یا نه. برای معتبرسازی محتوای بدنه پیام، روی true تنظیم کنید. روی false تنظیم کنید تا فقط وجود بدنه پیام اعتبارسنجی شود.

با تنظیم کردن مشخصه continueOnError برای عنصر <OASValidation> روی 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>

رفتار خط‌مشی را درصورت وجود پارامترهای سرصفحه، پُرسمان، یا کوکی در درخواست که در OpenAPI Specification تعریف نشده‌اند پیکربندی می‌کند.

مقدار پیش‌فرض نامربوط
الزامی است؟ اختیاری
تایپ کردن نوع پیچیده
عنصر ولی <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 تنظیم کنید تا اجرای خط‌مشی ناموفق شود.

مقدار پیش‌فرض درست
الزامی است؟ بولی
تایپ کردن نوع پیچیده
عنصر ولی <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 تنظیم کنید تا اجرای خط‌مشی ناموفق شود.

مقدار پیش‌فرض درست
الزامی است؟ بولی
تایپ کردن نوع پیچیده
عنصر ولی <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 تنظیم کنید تا اجرای خط‌مشی ناموفق شود.

مقدار پیش‌فرض درست
الزامی است؟ بولی
تایپ کردن نوع پیچیده
عنصر ولی <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 تنظیم می‌شود، زیرا معمولاً باید درخواست‌های ورودی از برنامه‌های کلاینت را ارزیابی کنید. برای ارزیابی پیام‌های پاسخ، روی پاسخ تنظیم کنید. روی پیام تنظیم کنید تا پیام درخواست را به‌طور خودکار ارزیابی کند وقتی خط‌مشی به جریان درخواست پیوست شده است و پیام پاسخ وقتی خط‌مشی به جریان پاسخ پیوست شده است.

مقدار پیش‌فرض درخواست
الزامی است؟ اختیاری
تایپ کردن رشته
عنصر ولی <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 ۵۰۰ بدنه پیام درخواست نمی‌تواند دربرابر «مشخصات OpenAPI» ارائه‌شده اعتبارسنجی شود.
steps.oasvalidation.SourceMessageNotAvailable ۵۰۰

متغیر مشخص‌شده در عنصر <Source> خط‌مشی یا خارج از محدوده است یا نمی‌تواند حل شود.

steps.oasvalidation.NotMessageVariable ۵۰۰

عنصر <Source> روی متغیری تنظیم شده است که از نوع پیام نیست.

خطاهای استقرار

این خطاها ممکن است زمانی رخ دهند که یک پراکسی حاوی این خط‌مشی را مستقر می‌کنید.

نام خطا علت
ResourceDoesNotExist «مشخصات OpenAPI» ارجاع‌داده‌شده در عنصر <OASResource> وجود ندارد.
ResourceCompileFailed «مشخصات OpenAPI» که در استقرار گنجانده شده است حاوی خطاهایی است که مانع از کامپایل شدن آن می‌شود. این معمولاً نشان می‌دهد که مشخصات «مشخصات OpenAPI 3.0» با قالب‌بندی درست نیست.
BadResourceURL «مشخصات OpenAPI» ارجاع‌داده‌شده در عنصر <OASResource> نمی‌تواند پردازش شود. این مشکل می‌تواند به این دلیل رخ دهد که فایل JSON یا YAML نیست یا نشانی وب فایل به‌درستی مشخص نشده است.

متغیرهای خطا

این متغیرها زمانی تنظیم می‌شوند که این خط‌مشی در زمان اجرا باعث بروز خطا شود. برای اطلاعات بیشتر، آنچه باید درباره خطاهای خط‌مشی بدانید را ببینید.

متغیر مکان مثال
fault.name="fault_name" ‫fault_name نام خطا است، همان‌طور که در جدول خطاهای زمان اجرا در بالا فهرست شده است. نام خطا آخرین بخش کد خطا است. fault.name Matches "ResourceDoesNotExist"
oasvalidation.policy_name.failed ‫policy_name نام مشخص‌شده کاربر برای خط‌مشی‌ای است که خطا را ایجاد کرده است. oasvalidation.myoaspolicy.failed = true

ویژگی‌های پشتیبانی‌شده مشخصات OpenAPI

خط‌مشی OASValidation از ویژگی‌های OpenAPI Specification که در جدول زیر به‌صورت خلاصه براساس دسته آمده است پشتیبانی می‌کند. ویژگی‌هایی که پشتیبانی نمی‌شوند نیز فهرست شده‌اند.

دسته پشتیبانی می‌شود پشتیبانی نمی‌شود
قالب‌های نوع داده boolean
date
date-time
double
email
float
int32/int64
ipv4/ipv6
md5
sha1/sha256/sha512
string
uri
uri-template
uuid
binary
byte
password
شیء جداساز نگاشت
propertyName
موجود نیست
شیء نوع رسانه طرح‌واره کدبندی
نمونه
نمونه‌ها
شیء عملیات parameters
requestBody
responses
security (پشتیبانی جزئی)
callbacks
deprecated
servers
شیء پارامترها 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
شیء پاسخ application/json
application/hal+json
application/x-www-form-urlencoded (encoding شیء پشتیبانی نمی‌شود)
content
headers
application/xml
links
text/plain
text/xml
شیء پاسخ‌ها 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
تعریف‌های چندگانه سرور

موضوعات مرتبط