Poin Penting dalam Mendesain Kontrak Data JSON API
Enam hal sangat sulit diubah setelah rilis: envelope respons, format error, bentuk pagination, representasi ID dan waktu, semantik null versus tidak ada, serta evolusi versi.
Menempatkan JSON ke dalam sistem nyata: bagaimana mendefinisikan kontrak API, bagaimana mengelola konfigurasi dan fixture, bagaimana menangani kompatibilitas versi, dan bagaimana memelihara data uji.
5 artikelEnam hal sangat sulit diubah setelah rilis: envelope respons, format error, bentuk pagination, representasi ID dan waktu, semantik null versus tidak ada, serta evolusi versi.
Konfigurasi harus berlapis dan divalidasi; fixture harus deterministik, terbaca, dan bisa di-diff. Jika dua jenis file ini dikelola dengan buruk, biaya troubleshooting tetap tinggi untuk waktu lama.
Lima puluh record menjadi lima puluh satu dan diff melaporkan lima puluh satu perubahan. Membahas false positive text-diff, pencocokan array berdasarkan id, normalisasi jq, dan patch yang bisa diterapkan.
merge=union membiarkan JSON rusak lolos dan tetap melaporkan sukses. Artikel ini menelusuri driver three-way merge yang sadar key untuk JSON, plus tiga kebiasaan yang mengurangi konflik.
Menambah field tidak otomatis aman. Membahas batas kompatibilitas, field versi, jendela deprecation, migrasi dual-write, contract test, dan metrik canary.