JSON Schema: Daripada Asas kepada Pengeluaran
Terdapat banyak kata kunci, tetapi hanya selusin digunakan setiap hari. Betulkan type/properties/required/$ref, kendalikan mesej ralat dengan baik, dan anda meliputi lapan puluh peratus kes sebenar.
Terangkan bentuk data anda dengan JSON Schema, tukar persetujuan lisan menjadi pengesahan yang boleh dilaksanakan, dan biarkan ia memacu jenis TypeScript serta penjanaan borang secara bergilir.
7 artikelTerdapat banyak kata kunci, tetapi hanya selusin digunakan setiap hari. Betulkan type/properties/required/$ref, kendalikan mesej ralat dengan baik, dan anda meliputi lapan puluh peratus kes sebenar.
Jenis dan Schema masing-masing meliputi satu segmen: satu pada masa kompil, satu pada masa jalan. Persoalannya bukan mana yang perlu dipilih, tetapi cara mengekalkan kedua-duanya selaras secara automatik.
Schema terjana sering menyekat data yang sah. Ketahui mengapa contoh yang lebih kaya menghasilkan Schema yang lebih teruk, kemudian aliran kerja: pensampelan berbilang rekod, penyempurnaan semantik, penentuan lokasi ralat.
$ref menyelesaikan penggunaan semula, allOf dan oneOf menyelesaikan komposisi, dan menimbun kedua-duanya ialah tempat sesuatu rosak. Merangkumi $id, $defs, bersyarat, rekursi, penggabungan dan penyahpepijatan.
Pengesah mengeluarkan ralat mesin; pengguna ingin tahu kotak input mana yang salah. Merangkumi tatasusunan errors Ajv, instancePath berbanding schemaPath, pengelompokan dan penggunaan perkataan.
Pengesahan yang lulus tidak bermakna data bersih. Pydantic secara lalai mengabaikan medan asing, Zod mengalihkannya, Ajv membiarkannya — parameter halusinasi dan kunci tersilap lolos tanpa bunyi. Artikel ini menunjukkan tiga bentuk penerimaan senyap dan memberikan resipi lengkap: menutup objek, mengawal paksaan jenis, menggenggam setiap peringkat bersarang.
Skema tidak berakhir dengan penulisan — di situlah kemerosotan bermula. Satu salah taip senyap mengendurkan pengesahan, satu pemfaktoran semula memecahkan semua fixture. Panduan ini menghuraikan susunan ujian kontrak yang boleh dilaksanakan: fixture positif, negatif dan snapshot, lint skema itu sendiri, pengumpulan sekali dengan penggunaan semula, dan empat gerbang CI yang menukar pecahan kontrak kepada binaan merah.