Poin penting
- 01Didukung oleh Ajv, validator JSON Schema paling banyak digunakan JavaScript — apa yang melewati di sini melewati di Node.js, Fastify, dan sebagian besar toolchain JS.
- 02Melaporkan setiap kesalahan validasi sekaligus (mode allErrors), bukan hanya kegagalan pertama.
- 03Setiap kesalahan menyertakan jalur JSON Pointer ke field yang gagal untuk navigasi cepat.
- 04Baik skema maupun data berjalan sepenuhnya di browser Anda — apa pun tidak diunggah.
Mengapa Memvalidasi JSON Terhadap Skema?
JSON Schema adalah cara standar untuk mendeskripsikan bentuk dokumen JSON — field yang diperlukan, jenis yang diizinkan, batasan nilai, struktur objek bersarang. Memvalidasi terhadap skema sebelum muatan mencapai produksi menangkap ketidakcocokan tipe, field yang hilang, dan pelanggaran batasan lebih awal, ketika murah untuk diperbaiki.
Kasus penggunaan paling umum adalah pengujian badan permintaan dan respons API, memvalidasi file konfigurasi, memeriksa objek contoh OpenAPI, dan memverifikasi ekspor data terhadap struktur yang dikenal. Validator Handytool menggunakan Ajv — perpustakaan JSON Schema JavaScript de-facto, digunakan di dalam Node.js sendiri — jadi hasilnya di sini cocok dengan apa yang akan dilihat backend Anda.
Cara Memvalidasi JSON Terhadap Skema
- 01
Tempel JSON Schema Anda
Tempel skema di panel kiri. Ini dapat berupa skema Draft 7 atau 2019-09 atau 2020-12 dengan tipe, properti, diperlukan, item, anyOf, allOf — kata kunci apa pun yang didukung Ajv standar.
- 02
Tempel data JSON Anda
Tempel dokumen data yang ingin Anda validasi di panel kanan. Ini adalah instancenya — badan permintaan API, objek konfigurasi, rekam ekspor, atau contoh tunggal dari spesifikasi OpenAPI Anda.
- 03
Klik Validasi
Ajv menjalankan validasi dengan allErrors: true, artinya ia mengumpulkan setiap kegagalan daripada berhenti di yang pertama.
- 04
Tinjau daftar kesalahan
Setiap kesalahan menunjukkan jalur JSON Pointer ke nilai yang gagal (misalnya /user/email), kata kunci yang gagal (tipe, diperlukan, minimum), dan pesan yang dapat dibaca manusia. Perbaiki masing-masing dan validasi kembali.
Apa yang Divalidasi Pengembang Dengan JSON Schema
- 01Badan permintaan REST API — konfirmkan muatan cocok dengan bentuk yang diharapkan endpoint sebelum mengirim.
- 02Objek contoh spesifikasi OpenAPI — validasi setiap contoh terhadap komponen skema inline.
- 03File konfigurasi — pastikan kunci yang diperlukan ada dan nilai adalah tipe yang benar.
- 04Rekam pipeline data — deteksi perubahan struktur antara produsen dan konsumen data.
- 05Muatan pengajuan formulir — uji bahwa validasi frontend mencerminkan batasan skema backend.
- 06Badan webhook pihak ketiga — konfirmkan skema yang didokumentasikan cocok dengan muatan aktual.
Validasi Pribadi, Server Tidak Diperlukan
Ajv berjalan sepenuhnya di browser Anda. Baik skema maupun data tidak dikirim ke server apa pun — Anda dapat dengan aman memvalidasi skema yang mendeskripsikan struktur data internal dan objek data yang berisi nilai field sensitif.
Validator mendukung draf JSON Schema 6, 7, 2019-09, dan 2020-12. Draf paling umum di alam liar adalah Draft 7, yang mencakup semua kata kunci sehari-hari: tipe, properti, diperlukan, item, minimum, maksimum, pola, enum, anyOf, allOf, oneOf, not, dan $ref.
FAQ Validator JSON Schema
Draf JSON Schema mana yang didukung?
Ajv mendukung draf 6, 7, 2019-09, dan 2020-12. Draft 7 adalah yang paling umum dalam codebase yang ada dan mencakup semua kata kunci standar.
Mengapa skema $ref saya tidak diselesaikan?
URL $ref eksternal tidak diambil di alat khusus browser ini. Inline semua skema yang direferensikan menggunakan $defs dan pointer JSON lokal seperti #/$defs/MyType.
Apakah skema atau data saya diunggah ke server apa pun?
Tidak. Ajv berjalan sepenuhnya di browser Anda — baik skema maupun data tetap di perangkat Anda.
Bisakah saya menggunakan ini untuk memvalidasi spesifikasi OpenAPI 3?
Anda dapat memvalidasi komponen skema individual dan objek contoh. Memvalidasi seluruh dokumen OpenAPI memerlukan validator OpenAPI khusus yang memahami meta-skema spesifikasi.
Mengapa saya melihat beberapa kesalahan alih-alih hanya yang pertama?
Validator dikonfigurasi dengan allErrors: true, yang membuat Ajv mengumpulkan setiap kegagalan daripada berhenti di yang pertama. Ini disengaja — Anda dapat memperbaiki semua masalah dalam satu lintasan daripada membuat upaya validasi berulang.