JSON Toolkit

Schema และการตรวจสอบความถูกต้อง

อธิบายรูปร่างของข้อมูลด้วย JSON Schema เปลี่ยนข้อตกลงด้วยวาจาให้เป็นการตรวจสอบที่รันได้ และปล่อยให้มันขับเคลื่อน TypeScript type และการสร้างฟอร์มตามลำดับ

7 บทความ

บทความในหมวดนี้

JSON Schema: จากพื้นฐานสู่การใช้งานจริง

คีย์เวิร์ดมีมากมาย แต่มีเพียงสิบกว่าตัวที่ใช้ทุกวัน ทำให้ type/properties/required/$ref ถูกต้อง จัดการข้อความ error ให้ดี ก็ครอบคลุมแปดสิบเปอร์เซ็นต์ของกรณีจริง

ระดับกลางอ่านประมาณ 14 นาทีอัปเดต 2026-10-30

การซิงก์สองทางระหว่าง Schema และ TypeScript Type

Type และ schema ต่างครอบคลุมคนละส่วน: หนึ่งตอน compile หนึ่งตอนรันไทม์ คำถามไม่ใช่ว่าจะเลือกอันไหน แต่จะทำให้ทั้งสองซิงก์กันโดยอัตโนมัติอย่างไร

ระดับกลางอ่านประมาณ 11 นาทีอัปเดต 2026-10-30

ทำไม JSON Schema ที่สร้างอัตโนมัติจึงปฏิเสธข้อมูลจริงซ้ำ ๆ

schema ที่สร้างขึ้นมักบล็อกข้อมูลที่ถูกต้อง เรียนรู้ว่าทำไมตัวอย่างที่สมบูรณ์กว่าจึงให้ schema ที่แย่กว่า แล้วรู้กระบวนการ: การสุ่มหลายเรกคอร์ด การเติมความหมาย การชี้ error ให้ตรงจุด

ระดับกลางอ่านประมาณ 14 นาทีอัปเดต 2026-10-30

การใช้ JSON Schema ซ้ำ: $ref, $defs และการประกอบ allOf/oneOf

$ref แก้ปัญหาการใช้ซ้ำ allOf และ oneOf แก้ปัญหาการประกอบ และการซ้อนทั้งสองเข้าด้วยกันคือจุดที่พัง ครอบคลุม $id, $defs, เงื่อนไข, การเรียกซ้ำ, bundling และการดีบัก

ระดับกลางอ่านประมาณ 11 นาทีอัปเดต 2026-10-31

เมื่อ error ของ JSON Schema ไม่มีความหมาย: การระบุตำแหน่งและ governance ข้อความ error ของ Ajv

validator ปล่อย error ที่เครื่องอ่านได้; ผู้ใช้ต้องการรู้ว่าช่องกรอกไหนผิด ครอบคลุมอาร์เรย์ errors ของ Ajv, instancePath เทียบกับ schemaPath, การจัดกลุ่มและถ้อยคำ

ขั้นสูงอ่านประมาณ 10 นาทีอัปเดต 2026-10-31

หากไม่ปิด additionalProperties การตรวจสอบ Schema ก็ไม่ได้ตรวจอะไร

การตรวจสอบผ่านไม่ได้แปลว่าข้อมูลสะอาด Pydantic โดยค่าเริ่มต้นเมินฟิลด์ที่ไม่รู้จัก, Zod ตัดทิ้ง, Ajv ปล่อยผ่าน — พารามิเตอร์ที่โมเดลมั่วและคีย์พิมพ์ผิดลอดผ่านอย่างเงียบงัน บทความนี้แสดงสามรูปแบบของการยอมรับอย่างเงียบและวิธีที่ครบถ้วน: ปิดออบเจ็กต์ ควบคุมการแปลงชนิด และรัดทุกระดับของการซ้อน

Intermediateอ่านประมาณ 8 นาทีอัปเดต 2026-11-02

การทดสอบสัญญา JSON Schema: เชื่อมกฎการตรวจสอบเข้ากับ CI

สคีมาไม่จบเมื่อเขียนเสร็จ — ที่ตรงนั้นคือจุดเริ่มเสื่อมสภาพ การพิมพ์ผิดหนึ่งจุดทำให้การตรวจสอบหย่อนลงอย่างเงียบ ๆ การรีแฟกเตอร์หนึ่งครั้งทำลาย fixture ทั้งหมด คู่มือนี้ถอดโครงการทดสอบสัญญาที่ทำได้จริง: fixture บวก ลบ และ snapshot, lint ตัวสคีมาเอง คอมไพล์ครั้งเดียวใช้ซ้ำ และสี่ประตู CI ที่เปลี่ยนสัญญาแตกเป็นบิลด์แดง

ระดับกลางอ่านประมาณ 8 นาทีอัปเดต 2026-11-05