เครื่องมือตรวจสอบ JSON Schema

วางสคีมาและเอกสาร เลือกดราฟต์ แล้วเครื่องมือตรวจสอบจะเทียบเอกสารกับคีย์เวิร์ดทุกตัวที่สคีมาของคุณใช้ ได้แก่ type, required, enum, oneOf, $ref, if/then/else และ format แบบกำหนดเอง จากนั้นรายงานการละเมิดแต่ละรายการพร้อมตัวชี้แบบ JSONPath ที่ระบุตำแหน่งที่เกิดปัญหาได้อย่างแม่นยำ

วิธีตรวจสอบเทียบกับสคีมา

  1. 1

    วางสคีมา

    JSON Schema ดราฟต์ 04, 07 หรือ 2020-12 โดยคีย์เวิร์ด `$schema` (หากมี) จะเลือกดราฟต์ที่เกี่ยวข้องให้โดยอัตโนมัติ

  2. 2

    วางเอกสาร

    JSON ที่คุณต้องการตรวจสอบ ต้องเป็น JSON ที่ถูกต้องก่อน โดยข้อผิดพลาดด้านไวยากรณ์จะแสดงขึ้นก่อนการประเมินสคีมา

  3. 3

    ตรวจสอบ

    การละเมิดแต่ละรายการจะถูกรายงานพร้อมตัวชี้แบบ JSON (`/user/email`) และคีย์เวิร์ดที่ล้มเหลว (เช่น `format`, `required` ฯลฯ)

  4. 4

    แก้ไขและตรวจสอบใหม่

    แก้ไขด้านใดด้านหนึ่ง แล้วสถานะจะอัปเดตแบบเรียลไทม์

คีย์เวิร์ดที่รองรับ

แกนหลัก: type, enum, const, multipleOf, maximum, minimum, exclusiveMaximum, exclusiveMinimum, maxLength, minLength, pattern, maxItems, minItems, uniqueItems, maxContains, minContains, maxProperties, minProperties, required, dependentRequired

การประกอบ: allOf, anyOf, oneOf, not

ตัวปรับใช้: properties, patternProperties, additionalProperties, items, prefixItems, contains, propertyNames

เงื่อนไข: if, then, else, dependentSchemas

การอ้างอิง: $ref, $defs, $id, $anchor

รูปแบบ (พร้อมการตรวจสอบเมื่อเปิดใช้งาน): date-time, date, time, duration, email, hostname, ipv4, ipv6, uri, uuid, regex

ผลลัพธ์ข้อผิดพลาด

FAIL  /user/email        format            "not-an-email" is not a valid "email"
FAIL  /user/age          minimum           -3 is less than the minimum 0
FAIL  /orders/0/total    type              "42" is not of type "number"
FAIL  /                  required          missing required property "shippingAddress"

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

ความแตกต่างระหว่างดราฟต์ที่มักทำให้พลาด

คีย์เวิร์ด ดราฟต์ 04 ดราฟต์ 07 ดราฟต์ 2020-12
id เทียบกับ $id id $id $id
exclusiveMaximum เป็นค่า bool ใช่ ตัวเลข ตัวเลข
ไวยากรณ์อาร์เรย์ items items items prefixItems
$ref อนุญาตคีย์เวิร์ดข้างเคียง ไม่ ไม่ ใช่

ตั้งค่าดราฟต์ให้ถูกต้อง การตรวจสอบสคีมาดราฟต์ 04 ในฐานะดราฟต์ 2020-12 จะทำให้ตีความ id และรายละเอียดปลีกย่อยอื่นๆ ผิดพลาด

เวิร์กโฟลว์ทั่วไป

  • การทดสอบสัญญา API: ก่อนการดีพลอย ให้รันสคีมา OpenAPI ที่สร้างหรืออัปเดตแล้วเทียบกับการตอบสนองตัวอย่างจริง
  • การเสริมความแข็งแกร่งให้การกำหนดค่า: ตรวจสอบไฟล์กำหนดค่า YAML/JSON ทุกไฟล์ในขั้นตอน CI เทียบกับสคีมาก่อนการรวมโค้ด
  • การรับข้อมูลเข้า: ปฏิเสธเพย์โหลดที่ไม่ตรงกับรูปแบบที่คาดไว้ตั้งแต่ต้น พร้อมข้อความแจ้งข้อผิดพลาดที่ชัดเจน

ข้อผิดพลาดที่พบบ่อย

  • ลืมบังคับใช้ format โดยค่าเริ่มต้น เครื่องมือตรวจสอบส่วนใหญ่จะถือว่ารูปแบบที่ไม่รู้จักเป็นเพียงคำอธิบายประกอบเท่านั้น หากต้องการปฏิเสธอีเมลและวันที่ที่ไม่ถูกต้องจริงๆ ให้เปิดใช้การตรวจสอบรูปแบบอย่างเข้มงวด
  • ใช้ oneOf มากเกินไป หากสองสาขาของ oneOf ทับซ้อนกัน เอกสารจะล้มเหลว (ต้องตรงกับเพียงสาขาเดียวเท่านั้น) ให้ใช้ anyOf หรือรูปแบบตัวจำแนกแทน
  • สคีมาที่เข้มงวดด้วย additionalProperties: false การเพิ่มฟิลด์ทางเลือกใหม่จะกลายเป็นการเปลี่ยนแปลงที่ทำลายความเข้ากันได้ ควรละเว้นไว้ เว้นแต่คุณต้องการอ็อบเจ็กต์แบบปิดจริงๆ

คำถามที่พบบ่อย

รองรับ ทั้งดราฟต์ 2020-12, 07 และ 04 ได้รับการรองรับทั้งหมด เครื่องมือตรวจสอบจะอ่านคีย์เวิร์ด $schema จากเอกสารของคุณเพื่อเลือกตัวที่ถูกต้อง หรือย้อนกลับไปใช้ตัวเลือกในอินเทอร์เฟซผู้ใช้

รูปแบบมาตรฐาน (email, date-time, uuid, ipv4 ฯลฯ) จะถูกตรวจสอบเมื่อเปิดใช้การตรวจสอบรูปแบบอย่างเข้มงวด ส่วนรูปแบบที่กำหนดเองซึ่งประกาศไว้ในสคีมาของคุณจะถูกถือเป็นเพียงคำอธิบายประกอบเท่านั้น เว้นแต่คุณจะระบุ regex ด้วย pattern

การอ้างอิงภายใน (#/$defs/foo) จะถูกแก้ไขโดยอัตโนมัติ ส่วนการอ้างอิงผ่าน HTTP จากภายนอกจะไม่ถูกดึงมาโดยค่าเริ่มต้นเพื่อความปลอดภัย ให้ฝังการอ้างอิงภายนอกแบบอินไลน์เสียก่อน หรือใช้เครื่องมือเฉพาะที่รองรับการแก้ไข $ref จากระยะไกล

ใช่ ทั้งสคีมาและเอกสารจะคงอยู่ในเครื่องของคุณ เนื้อหาที่วางจะไม่ถูกอัปโหลดออกไปเลย จึงปลอดภัยสำหรับสัญญา API ภายในองค์กรและข้อมูลที่ละเอียดอ่อน

เครื่องมือที่เกี่ยวข้อง

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิงแป้นพิมพ์ลัด

ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux

ตัวตรวจสอบอีเมล

ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ

เครื่องสร้างตัวอักษรสุ่ม

สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน

ตัวลดรูปพีชคณิตบูลีน

ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^

เครื่องมือนี้มีให้บริการในภาษาอื่น