Những điểm chính
- 01Được cung cấp bởi Ajv, thư viện xác thực Lược Đồ JSON được sử dụng rộng rãi nhất của JavaScript — những gì vượt qua ở đây vượt qua trong Node.js, Fastify và hầu hết các chuỗi công cụ JS.
- 02Báo cáo mọi lỗi xác thực cùng một lúc (chế độ allErrors), không chỉ lỗi đầu tiên.
- 03Mỗi lỗi bao gồm đường dẫn Con Trỏ JSON tới trường không thành công để điều hướng nhanh.
- 04Cả lược đồ và dữ liệu chạy hoàn toàn trong trình duyệt của bạn — không có gì được tải lên.
Tại Sao Xác Thực JSON Chống Lại Lược Đồ?
Lược Đồ JSON là cách tiêu chuẩn để mô tả hình dạng của tài liệu JSON — trường bắt buộc, loại được phép, ràng buộc giá trị, cấu trúc đối tượng lồng nhau. Xác thực dựa trên lược đồ trước khi tải trọng đạt sản xuất bắt các lỗi loại, trường bắt buộc bị thiếu và vi phạm ràng buộc sớm, khi chúng rẻ để sửa chữa.
Các trường hợp sử dụng phổ biến nhất là thử nghiệm các phần thân yêu cầu và phản hồi API, xác thực tệp cấu hình, kiểm tra các đối tượng ví dụ OpenAPI và xác minh các xuất dữ liệu dựa trên cấu trúc đã biết. Trình xác thực của Handytool sử dụng Ajv — thư viện Lược Đồ JSON de-facto của JavaScript, được sử dụng bên trong Node.js — vì vậy kết quả ở đây khớp những gì phần phụt trợ của bạn sẽ thấy.
Cách Xác Thực JSON Chống Lại Lược Đồ
- 01
Dán Lược Đồ JSON của bạn
Dán lược đồ vào bảng điều khiển bên trái. Đây có thể là Dự thảo 7 hoặc 2019-09 hoặc lược đồ 2020-12 có loại, thuộc tính, bắt buộc, mục, anyOf, allOf — bất kỳ từ khóa được hỗ trợ bởi Ajv nào.
- 02
Dán dữ liệu JSON của bạn
Dán tài liệu dữ liệu bạn muốn xác thực vào bảng điều khiển bên phải. Đây là phiên bản — một phần thân yêu cầu API, một đối tượng cấu hình, một bản ghi xuất hoặc một ví dụ duy nhất từ thông số kỹ thuật OpenAPI của bạn.
- 03
Nhấp vào Xác thực
Ajv chạy xác thực với allErrors: true, có nghĩa là nó thu thập mọi lỗi thay vì dừng lại ở lỗi đầu tiên.
- 04
Xem lại danh sách lỗi
Mỗi lỗi hiển thị đường dẫn Con Trỏ JSON tới giá trị không thành công (ví dụ: /user/email), từ khóa không thành công (loại, bắt buộc, tối thiểu) và thông báo có thể đọc được bởi con người. Sửa từng cái và xác thực lại.
Những Gì Nhà Phát Triển Xác Thực Bằng Lược Đồ JSON
- 01Phần thân yêu cầu REST API — xác nhận tải trọng khớp hình dạng dự kiến của điểm cuối trước khi gửi.
- 02Các đối tượng ví dụ thông số kỹ thuật OpenAPI — xác thực mỗi ví dụ dựa trên thành phần lược đồ nội tuyến.
- 03Tệp cấu hình — đảm bảo các khóa bắt buộc có mặt và các giá trị có loại chính xác.
- 04Bản ghi đường ống dữ liệu — phát hiện độ trôi cấu trúc giữa nhà sản xuất và người tiêu dùng dữ liệu.
- 05Tải trọng gửi biểu mẫu — kiểm tra rằng xác thực phía trước phản ánh các ràng buộc lược đồ phía sau.
- 06Phần thân webhook của bên thứ ba — xác nhận lược đồ được ghi chép khớp tải trọng thực tế.
Xác Thực Riêng Tư, Không Cần Máy Chủ
Ajv chạy hoàn toàn trong trình duyệt của bạn. Cả lược đồ và dữ liệu không được gửi đến bất kỳ máy chủ nào — bạn có thể an toàn xác thực các lược đồ mô tả các cấu trúc dữ liệu bên trong và các đối tượng dữ liệu chứa các giá trị trường nhạy cảm.
Trình xác thực hỗ trợ các dự thảo Lược Đồ JSON 6, 7, 2019-09 và 2020-12. Dự thảo phổ biến nhất trong tự nhiên là Dự thảo 7, bao gồm tất cả các từ khóa hàng ngày: loại, thuộc tính, bắt buộc, mục, tối thiểu, tối đa, mẫu, enum, anyOf, allOf, oneOf, không và $ref.
Câu Hỏi Thường Gặp Về Trình Xác Thực Lược Đồ JSON
Những dự thảo Lược Đồ JSON nào được hỗ trợ?
Ajv hỗ trợ dự thảo 6, 7, 2019-09 và 2020-12. Dự thảo 7 phổ biến nhất trong các cơ sở mã hiện có và bao gồm tất cả các từ khóa tiêu chuẩn.
Tại sao lược đồ $ref của tôi không giải quyết?
URL $ref bên ngoài không được tìm nạp trong công cụ chỉ dành cho trình duyệt này. Nội tuyến tất cả các lược đồ được tham chiếu bằng cách sử dụng $defs và con trỏ JSON cục bộ như #/$defs/MyType.
Lược đồ hoặc dữ liệu của tôi có được tải lên bất kỳ máy chủ nào không?
Không. Ajv chạy hoàn toàn trong trình duyệt của bạn — cả lược đồ và dữ liệu ở lại trên thiết bị của bạn.
Tôi có thể sử dụng cái này để xác thực một thông số kỹ thuật OpenAPI 3 không?
Bạn có thể xác thực các thành phần lược đồ riêng lẻ và các đối tượng ví dụ. Xác thực toàn bộ tài liệu OpenAPI yêu cầu một trình xác thực OpenAPI chuyên dụng hiểu meta-lược đồ thông số kỹ thuật.
Tại sao tôi lại thấy nhiều lỗi thay vì chỉ lỗi đầu tiên?
Trình xác thực được định cấu hình với allErrors: true, điều này làm cho Ajv thu thập mọi lỗi thay vì dừng lại ở lỗi đầu tiên. Điều này có chủ ý — bạn có thể sửa tất cả các vấn đề trong một lượt chứ không phải thực hiện các nỗ lực xác thực lặp lại.