JSON Schema hanya memvalidasi aturan yang Anda tulis

JSON yang bisa dibaca belum tentu cocok untuk permintaan. Skema menjelaskan data yang diharapkan, bukan aturan yang belum ditulis atau fakta di luar data.

Keberadaan dan tipe adalah keputusan terpisah

Menentukan kolom di properties membatasinya saat ada, bukan otomatis mewajibkannya. Gunakan required jika harus tersedia.

Angka 3 berbeda dari string "3". Menerima satu tidak berarti mengonversi yang lain otomatis. Susun kontrak sesuai kebutuhan penerima.

Referensi: JSON Schema — Properties, required fields and additional properties

Tentukan kebijakan kolom tambahan

Pada skema objek sederhana, additionalProperties: false menolak kolom tak dideklarasikan. Ini dapat menangkap salah ketik nama, tetapi kontrak perlu diperbarui sengaja ketika diperluas.

Uji kolom hilang, tipe salah, dan properti tambahan. Hasil mudah dipahami ketika setiap contoh menargetkan aturan tertentu.

Referensi: JSON Schema — Properties, required fields and additional properties

Sesuai skema bukan persetujuan permintaan

ToolRoof memeriksa subset Draft 2020-12 secara lokal. Tidak mengambil skema jarak jauh atau mendukung semua kata kunci; fitur tak didukung dilaporkan, bukan diam-diam diluluskan.

Lolos tidak memastikan produk ada, harga basis data benar, atau pengguna berwenang. Anotasi default juga tidak mengisi kolom masukan yang hilang pada pemeriksa ini.

Contoh: jumlah wajib tanpa perubahan tipe tersembunyi

Kontrak mewajibkan quantity bertipe integer, minimum 1, masuk required, dan melarang properti tambahan. {"quantity":3} lolos; {"quantity":"3"} gagal karena tipe.

{} gagal karena kolom hilang; {"quantity":3,"note":"draft"} karena properti tambahan. Menerima 3 tidak membuktikan 3 unit tersedia dalam stok; itu aturan di luar contoh.

Referensi