JSON Toolkit

Schema và xác thực dữ liệu

Mô tả hình dạng dữ liệu bằng JSON Schema, biến những thỏa thuận miệng thành xác thực có thể thực thi, rồi để nó dẫn dắt việc sinh kiểu TypeScript và form.

7 bài viết

Bài viết trong chuyên mục này

JSON Schema: Từ cơ bản đến triển khai thực tế

Từ khóa thì nhiều, nhưng hằng ngày chỉ dùng hơn chục cái. Nắm đúng type/properties/required/$ref, xử lý tốt thông báo lỗi là đã phủ được tám mươi phần trăm tình huống thực tế.

Trung cấpĐọc khoảng 14 phútCập nhật 2026-10-30

Đồng bộ hai chiều giữa Schema và kiểu TypeScript

Kiểu và schema mỗi thứ phủ một đoạn: một bên ở thời điểm biên dịch, một bên ở thời điểm chạy. Vấn đề không phải chọn bên nào, mà là làm sao giữ hai bên đồng bộ một cách tự động.

Trung cấpĐọc khoảng 11 phútCập nhật 2026-10-30

Tại sao JSON Schema sinh tự động cứ từ chối dữ liệu thật

Schema sinh ra thường chặn dữ liệu hợp lệ. Hãy hiểu tại sao mẫu càng đầy đủ lại cho schema càng tệ, rồi làm theo quy trình: lấy mẫu nhiều bản ghi, bổ sung ngữ nghĩa, chỉ ra lỗi chính xác.

Trung cấpĐọc khoảng 14 phútCập nhật 2026-10-30

Tái sử dụng JSON Schema: $ref, $defs và kết hợp allOf/oneOf

$ref giải quyết tái sử dụng, allOf và oneOf giải quyết kết hợp, còn xếp chồng cả hai chính là chỗ mọi thứ vỡ. Bài viết bao gồm $id, $defs, điều kiện, đệ quy, bundle và debug.

Trung cấpĐọc khoảng 11 phútCập nhật 2026-10-31

Không đóng additionalProperties thì xác thực Schema vô nghĩa

Xác thực thành công không đồng nghĩa dữ liệu sạch. Pydantic mặc định bỏ qua trường lạ, Zod gỡ bỏ chúng, Ajv cho qua — tham số bịa và khóa gõ sai lọt thẳng. Bài viết chỉ ra ba dạng chấp nhận im lặng và đưa ra cách làm đầy đủ: đóng đối tượng, kiểm soát ép kiểu, siết từng tầng lồng nhau.

IntermediateĐọc khoảng 8 phútCập nhật 2026-11-02

Kiểm thử hợp đồng JSON Schema: hàn quy tắc xác thực vào CI

Schema không kết thúc khi viết xong — đó là nơi thoái hóa bắt đầu. Một lỗi chính tả âm thầm nới lỏng xác thực, một lần refactor làm hỏng mọi fixture. Hướng dẫn này trình bày bộ khung kiểm thử hợp đồng khả thi: fixture dương, âm và snapshot, lint chính schema, biên dịch một lần tái sử dụng, và bốn cổng CI biến vỡ hợp đồng thành build đỏ.

Trung cấpĐọc khoảng 8 phútCập nhật 2026-11-05