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

Field wajib, objek bertingkat, dan array

Misi: validator skema untuk respons pesanan

Setelah pelajaran ini kamu bisa menulis validator rekursif untuk type, properties, required, items, dan additionalProperties, lalu memakainya pada respons pesanan.

±17 menitDiperiksa 7 Okt 2026

Materi

Tim Sumber Rezeki ingin satu pemeriksa yang membaca skema, bukan pemeriksa yang ditulis ulang untuk setiap endpoint. Kamu menulis validator kecil yang mendukung lima kata kunci yang sudah dipelajari, memakainya untuk membaca skema pesanan, lalu menguji endpoint daftar pesanan.

Kata kunciDiperiksa bilaLokasi galat
typeselalu, paling awal; bila gagal, kata kunci lain di skema itu dilewatilokasi nilai itu
requireddata berupa objeklokasi field yang hilang (aturan kelas ini; validator lain bisa menunjuk objeknya)
propertiesfield ada di dataditeruskan ke skema field, lokasi + /nama
additionalProperties: falsedata berupa objeklokasi field yang tidak disebut properties
itemsdata berupa arrayditeruskan ke setiap elemen, lokasi + /indeks

Latihan

0/4 lulus

Misi akhir modul: luluskan minimal 4 dari 4 tugas. Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 2 dari 4

Respons mana yang lolos skema di bawah?

{ "type": "object",
  "required": ["id", "barang"],
  "properties": {
    "id": { "type": "string" },
    "barang": { "type": "array",
      "items": { "type": "object", "required": ["sku"],
        "properties": { "sku": { "type": "string" }, "qty": { "type": "integer" } } } }
  } }
Pilih satu jawaban

Latihan 3 dari 4

Apa hasil validasi data ini terhadap skemanya?

Skema:
{ "type": "object",
  "properties": {
    "id": { "type": "string" },
    "pelanggan": { "type": "object", "properties": { "nama": { "type": "string" } } }
  },
  "additionalProperties": false }

Data:
{ "id": "PSN-12", "pelanggan": { "nama": "Rahmawati", "telepon": "081234567890" } }
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke