นโยบายการตรวจสอบความถูกต้องของ OAS

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
info

เกี่ยวกับนโยบาย OASValidation

นโยบาย OASValidation (การตรวจสอบข้อกำหนด OpenAPI) ช่วยให้คุณตรวจสอบข้อความคำขอหรือการตอบกลับขาเข้ากับข้อกำหนด OpenAPI 3.0 (JSON หรือ YAML) ได้ ดูเนื้อหาที่ได้รับการตรวจสอบ

นโยบาย OASValidation จะระบุชื่อของข้อกำหนด OpenAPI ที่จะใช้สำหรับการตรวจสอบเมื่อขั้นตอนที่แนบนโยบายดำเนินการ ระบบจะจัดเก็บข้อกำหนด OpenAPI เป็นทรัพยากรในตำแหน่งมาตรฐานต่อไปนี้ภายในชุดพร็อกซี API: apiproxy/resources/oas ข้อกำหนด OpenAPI ต้องมีส่วนขยาย .json, .yml, .yaml

เพิ่มข้อกำหนด OpenAPI เป็นทรัพยากรในชุดพร็อกซี API โดยใช้ UI หรือ API ตามที่อธิบายไว้ในจัดการทรัพยากร

เนื้อหาใดบ้างที่ได้รับการตรวจสอบ

ตารางต่อไปนี้สรุปเนื้อหาข้อความคำขอที่นโยบาย OASValidation ตรวจสอบตามคอมโพเนนต์

คอมโพเนนต์ ขอการตรวจสอบ
Basepath ตรวจสอบ basepath ที่กำหนดโดยพร็อกซี API และไม่สนใจ basepath ที่ระบุในข้อกำหนดของ OpenAPI
เส้นทาง ตรวจสอบว่าเส้นทางคำขอ (ลบ basepath ออก) ตรงกับรูปแบบเส้นทางใดรูปแบบหนึ่งที่กำหนดไว้ในข้อกำหนด OpenAPI
คำกริยา ตรวจสอบว่าได้กำหนดคำกริยาสำหรับเส้นทางในข้อกำหนด OpenAPI แล้ว
เนื้อหาของข้อความคำขอ
  • ตรวจสอบว่ามีเนื้อหาของข้อความในคำขอหรือไม่ หากจำเป็น
  • (ไม่บังคับ) ตรวจสอบเนื้อหาของข้อความกับสคีมาเนื้อหาคำขอของการดำเนินการในข้อกำหนด OpenAPI กำหนดค่าตัวเลือกนี้โดยใช้ <ValidateMessageBody>

หมายเหตุ: นโยบายจะตรวจสอบเนื้อหาข้อความคำขอเทียบกับข้อกำหนด OpenAPI ก็ต่อเมื่อตั้งค่า Content-Type เป็น application/json หากไม่ได้ตั้งค่าประเภทเนื้อหาเป็น application/json การตรวจสอบเนื้อหาของข้อความคำขอจะผ่านโดยอัตโนมัติ (โดยไม่ต้องตรวจสอบเนื้อหาจริง)

พารามิเตอร์
  • ตรวจสอบว่ามีพารามิเตอร์ที่จำเป็นในคำขอ ซึ่งรวมถึงพารามิเตอร์เส้นทาง ส่วนหัว การค้นหา และคุกกี้
  • ตรวจสอบว่าค่าพารามิเตอร์ตรงกับค่าที่กำหนดไว้ในข้อกำหนด OpenAPI
  • (ไม่บังคับ) ตรวจสอบว่ามีพารามิเตอร์ในคำขอที่ไม่ได้กำหนดไว้ในข้อกำหนด OpenAPI หรือไม่ กำหนดค่าตัวเลือกนี้โดยใช้ <AllowUnspecifiedParameters>

ตารางต่อไปนี้สรุปเนื้อหาข้อความตอบกลับที่นโยบาย OASValidation ตรวจสอบตามคอมโพเนนต์

คอมโพเนนต์ การตรวจสอบการตอบกลับ
เส้นทาง ตรวจสอบว่าเส้นทางคำขอ (ลบ basepath ออก) ตรงกับรูปแบบเส้นทางใดรูปแบบหนึ่งที่กำหนดไว้ในข้อกำหนด OpenAPI
คำกริยา ตรวจสอบว่าได้กำหนดคำกริยาสำหรับเส้นทางในข้อกำหนด OpenAPI แล้ว
เนื้อหาข้อความตอบกลับ
  • ตรวจสอบว่ามีเนื้อหาของข้อความในการตอบกลับหรือไม่ หากจำเป็น
  • ตรวจสอบว่าส่วนหัวของการตอบกลับในข้อกำหนด OpenAPI มีอยู่ในข้อความตอบกลับ และค่าของส่วนหัวของการตอบกลับตรงกับสคีมา
  • (ไม่บังคับ) ตรวจสอบเนื้อหาข้อความกับสคีมาเนื้อหาการตอบกลับของการดำเนินการในข้อกำหนด OpenAPI กำหนดค่าตัวเลือกนี้โดยใช้ <ValidateMessageBody>

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงวิธีที่คุณใช้นโยบาย OASValidation เพื่อตรวจสอบข้อความกับข้อกำหนด OpenAPI 3.0

ในตัวอย่างต่อไปนี้ นโยบาย 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

ค่าเริ่มต้น ดูแท็บนโยบายเริ่มต้นด้านล่าง
ต้องระบุหรือไม่ ต้องระบุ
ประเภท ออบเจ็กต์ที่ซับซ้อน
องค์ประกอบหลัก ไม่มี
องค์ประกอบย่อย <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 ลงในโฟลว์ใน UI ของ 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 ไม่มีข้อมูล จำเป็น

ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ name มีตัวอักษร ตัวเลข ช่องว่าง ขีดกลาง ขีดล่าง และจุดได้ ค่านี้ต้องมีความยาวไม่เกิน 255 อักขระ

ใช้องค์ประกอบ <DisplayName> เพื่อติดป้ายกํากับนโยบายในตัวแก้ไขพร็อกซี UI การจัดการด้วยชื่อภาษาอื่นที่เป็นธรรมชาติได้

continueOnError เท็จ ไม่บังคับ ตั้งค่าเป็น "false" เพื่อแสดงข้อผิดพลาดเมื่อนโยบายล้มเหลว ซึ่งเป็นลักษณะการทํางานที่คาดหวังตามนโยบายส่วนใหญ่ ตั้งค่าเป็น "จริง" เพื่อดําเนินการโฟลว์ข้อมูลต่อไป แม้ว่านโยบายจะล้มเหลวก็ตาม
enabled จริง ไม่บังคับ ตั้งค่าเป็น "true" เพื่อบังคับใช้นโยบาย ตั้งค่าเป็น "false" เพื่อ "ปิด" นโยบาย ระบบจะไม่บังคับใช้นโยบายแม้ว่าจะยังคงแนบไปกับโฟลว์
async   เท็จ เลิกใช้ แอตทริบิวต์นี้เลิกใช้งานแล้ว

การอ้างอิงองค์ประกอบย่อย

ส่วนนี้จะอธิบายองค์ประกอบย่อยของ <OASValidation>

<DisplayName>

ใช้ร่วมกับแอตทริบิวต์ name เพื่อติดป้ายกำกับนโยบายใน เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่ออื่นที่ฟังดูเป็นธรรมชาติมากขึ้น

องค์ประกอบ <DisplayName> เป็นองค์ประกอบที่พบบ่อยในนโยบายทั้งหมด

ค่าเริ่มต้น ไม่มี
ต้องระบุหรือไม่ ไม่บังคับ หากคุณละเว้น <DisplayName> ระบบจะใช้ค่าของแอตทริบิวต์ name ของนโยบาย
ประเภท สตริง
องค์ประกอบหลัก <PolicyElement>
องค์ประกอบย่อย ไม่มี

องค์ประกอบ <DisplayName> ใช้ไวยากรณ์ต่อไปนี้

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

องค์ประกอบ <DisplayName> ไม่มีแอตทริบิวต์หรือองค์ประกอบย่อย

<OASResource>

ระบุข้อกำหนดของ OpenAPI ที่จะใช้ตรวจสอบ คุณจัดเก็บไฟล์นี้ได้

  • ที่ขอบเขตพร็อกซี API ภายใน /apiproxy/resources/oas ในชุดพร็อกซี API
  • ในส่วน Resources ของมุมมอง Navigator ของเครื่องมือแก้ไขพร็อกซี API

ดูข้อมูลเพิ่มเติมได้ที่หัวข้อจัดการทรัพยากร

คุณระบุข้อกำหนด 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ในชุดพร็อกซี API

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

องค์ประกอบ <OASResource> ไม่มีแอตทริบิวต์หรือองค์ประกอบย่อย

<Options>

กำหนดค่าตัวเลือกสำหรับนโยบาย

ค่าเริ่มต้น ไม่มี
ต้องระบุหรือไม่ ไม่บังคับ
ประเภท ประเภทที่ซับซ้อน
องค์ประกอบหลัก <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

ค่าเริ่มต้น ไม่มี
ต้องระบุหรือไม่ ไม่บังคับ
ประเภท ประเภทที่ซับซ้อน
องค์ประกอบหลัก <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 เนื่องจากโดยปกติแล้วคุณจะต้องประเมินคำขอขาเข้าจากแอปไคลเอ็นต์ ตั้งค่าเป็น 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) โดยคุณดูสคีมานโยบาย ได้ใน GitHub

รหัสข้อผิดพลาด

ส่วนนี้จะอธิบายโค้ดข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่แสดงผลและตัวแปรข้อผิดพลาดที่ Edge กําหนดเมื่อนโยบายนี้ทําให้เกิดข้อผิดพลาด ข้อมูลนี้เป็นสิ่งสำคัญที่ต้องทราบหากคุณกำลังกำหนดกฎข้อผิดพลาดเพื่อจัดการกับข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการข้อผิดพลาด

ข้อผิดพลาดเกี่ยวกับรันไทม์

ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน

รหัสข้อผิดพลาด สถานะ HTTP สาเหตุ
steps.oasvalidation.Failed 500 ตรวจสอบเนื้อหาของคำขอกับข้อกําหนดของ OpenAPI ที่ระบุไม่ได้
steps.oasvalidation.SourceMessageNotAvailable 500

ตัวแปรที่ระบุในองค์ประกอบ <Source> ของนโยบายอยู่นอกขอบเขตหรือแก้ไขไม่ได้

steps.oasvalidation.NotMessageVariable 500

องค์ประกอบ <Source> ได้รับการตั้งค่าเป็นตัวแปรที่ไม่ใช่ประเภท ข้อความ

ข้อผิดพลาดในการทำให้ใช้งานได้

ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อคุณใช้พร็อกซีที่มีนโยบายนี้

ชื่อข้อผิดพลาด สาเหตุ
ResourceDoesNotExist ไม่มีข้อมูลจำเพาะของ OpenAPI ที่อ้างอิงในองค์ประกอบ <OASResource>
ResourceCompileFailed ข้อมูลจำเพาะของ OpenAPI ที่รวมอยู่ในการทำให้ใช้งานได้มีข้อผิดพลาดที่ทำให้ไม่สามารถคอมไพล์ได้ โดยทั่วไปเป็นการบ่งชี้ว่าข้อมูลจำเพาะไม่ใช่ OpenAPI Specification 3.0 ที่มีรูปแบบถูกต้อง
BadResourceURL ไม่สามารถประมวลผลข้อมูลจำเพาะของ OpenAPI ที่อ้างอิงในองค์ประกอบ <OASResource> ได้ ปัญหานี้อาจเกิดขึ้นหากไฟล์ไม่ใช่ไฟล์ 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-template
uuid
ไบนารี
ไบต์
รหัสผ่าน
ออบเจ็กต์ตัวแบ่ง mapping
propertyName
ไม่มี
ออบเจ็กต์ประเภทสื่อ สคีมา การเข้ารหัส
ตัวอย่าง
ตัวอย่าง
ออบเจ็กต์การดำเนินการ parameters
requestBody
responses
security (รองรับบางส่วน)
การเรียกกลับ
เลิกใช้งานแล้ว
เซิร์ฟเวอร์
ออบเจ็กต์พารามิเตอร์ allowEmptyValue
ใน (query, header, path)
ต้องระบุ
การตอบกลับ
สคีมา
รูปแบบ (deepObject, form, formmatrix, label, pipeDelimited, simple, spaceDelimited)

หมายเหตุ: deepObject รองรับเฉพาะพารามิเตอร์สตริง ไม่รองรับอาร์เรย์และออบเจ็กต์ที่ซ้อนกัน
allowReserved
เลิกใช้งานแล้ว
ตัวอย่าง
ตัวอย่าง
เนื้อหา
ออบเจ็กต์เส้นทาง delete
get
head
options
parameters
patch
post
put
trace
variables
เซิร์ฟเวอร์
ออบเจ็กต์เนื้อความของคำขอ application/json
application/hal+json
application/x-www-form-urlencoded (encoding ไม่รองรับออบเจ็กต์)
content
ต้องระบุ
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
เลิกใช้งานแล้ว
ตัวอย่าง
readOnly
writeOnly
xml
ออบเจ็กต์รูปแบบความปลอดภัย ใน (header, query) (ระบบจะละเว้นหาก type เป็น http)
name
type (apiKey, http)
bearerFormat
flows
openIdConnectUrl
scheme
ออบเจ็กต์เซิร์ฟเวอร์ url
ตัวแปร
คำจำกัดความของเซิร์ฟเวอร์หลายรายการ

หัวข้อที่เกี่ยวข้อง