Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Pengujian Kontrak API: JSON Schema, Respons Galat, dan Regresi

Pelajaran 4 dari 13

Field wajib, objek bertingkat, dan array

properties, required, dan additionalProperties

Setelah pelajaran ini kamu bisa membedakan field yang dijelaskan properties, field wajib di required, dan field lain yang dilarang additionalProperties, lalu menemukan field hilang dan field asing.

±13 menitDiperiksa 7 Okt 2026

Materi

Di misi sebelumnya field yang hilang tercatat sebagai salah tipe. JSON Schema memisahkan dua masalah itu ke tiga kata kunci objek. properties memasangkan nama field dengan skemanya, tetapi hanya memeriksa field yang memang ada di data: dokumentasi Understanding JSON Schema menegaskan field di properties tidak wajib secara bawaan, sehingga objek kosong pun lolos. required berisi daftar nama field yang wajib ada. additionalProperties mengatur field yang tidak disebut di properties; secara bawaan field lain diizinkan, dan nilai false melarangnya.

{
  "type": "object",
  "properties": {
    "nomor": { "type": "string" },
    "nama": { "type": "string" },
    "denda": { "type": "integer" }
  },
  "required": ["nomor", "nama"],
  "additionalProperties": false
}

Field yang bernilai null tetap ada. Spesifikasi validasi menyatakan objek lolos required bila setiap nama di daftar itu adalah nama properti di objek, tanpa melihat nilainya. Jadi anggota perpustakaan { "nomor": null, "nama": "Sari" } lolos required, lalu gagal di type milik nomor. Kedua pelanggaran dilaporkan berbeda karena perbaikannya berbeda: field hilang berarti server lupa mengirim, null berarti server mengirim nilai kosong.

Di JavaScript, keberadaan field diperiksa dengan Object.hasOwn(data, nama). Pemeriksaan if (data[nama]) menganggap 0, teks kosong, dan false sebagai field hilang, sedangkan operator in ikut menemukan nama warisan seperti toString dan constructor.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Pelanggaran apa yang dilaporkan validator JSON Schema untuk data di bawah?

Skema:
{ "type": "object",
  "properties": { "id": { "type": "string" }, "total": { "type": "integer" } },
  "required": ["id", "total"] }

Data:
{ "id": "PSN-1088", "total": null }
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke