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 2 dari 13

Kontrak dan kondisi keberhasilan

JSON Schema: kontrak badan dengan type

Setelah pelajaran ini kamu bisa membaca kata kunci type di JSON Schema, termasuk integer, null, dan type berbentuk array, lalu menerapkannya dengan pemeriksa JavaScript sendiri.

±13 menitDiperiksa 7 Okt 2026

Materi

JSON Schema adalah kosakata untuk menyatakan bentuk data JSON, dan skemanya sendiri juga ditulis sebagai JSON. Kata kunci paling dasar adalah type. Spesifikasi validasi JSON Schema 2020-12 mengenal enam tipe dasar, yaitu null, boolean, object, array, number, dan string, ditambah integer, yang cocok dengan angka apa pun yang bagian pecahannya nol. Nilai type boleh satu teks atau array teks; bila berupa array, data cukup cocok dengan salah satunya.

{
  "type": "object",
  "properties": {
    "isbn": { "type": "string" },
    "stok": { "type": "integer" },
    "harga": { "type": "number" },
    "sinopsis": { "type": ["string", "null"] }
  }
}

Dokumentasi Understanding JSON Schema memberi tiga contoh yang menentukan. Angka 1.0 tetap integer, karena JSON tidak membedakan 1 dan 1.0. Teks "42" ditolak oleh type integer maupun number walaupun isinya angka. Dan null bukan berarti field tidak ada: null adalah nilai dengan tipe sendiri, yang hanya lolos bila skemanya menyebut "null".

Mesin latihan ini tidak punya pustaka validator, jadi kamu menulis pemeriksanya sendiri dengan JavaScript. Tiga jebakan perlu diingat. MDN mencatat typeof null menghasilkan "object", dan typeof sebuah array juga "object", sehingga keduanya dipisahkan dengan === null dan Array.isArray. Number.isInteger(1.0) bernilai true, sejalan dengan aturan integer JSON Schema. RFC 8259 tidak mengizinkan NaN dan Infinity di JSON, sehingga nilai seperti itu tidak boleh lolos sebagai number.

Latihan

0/3 lulus

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

Latihan 3 dari 3

Skema respons memuat field catatan seperti di bawah. Badan mana yang melanggar kata kunci type milik catatan?

{
  "type": "object",
  "properties": {
    "catatan": { "type": ["string", "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