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

Field wajib, objek bertingkat, dan array

Objek bertingkat, array, dan lokasi pelanggaran

Setelah pelajaran ini kamu bisa membaca skema bertingkat dengan properties dan items, lalu menunjuk lokasi pelanggaran dengan JSON Pointer.

±13 menitDiperiksa 7 Okt 2026

Materi

Badan respons jarang datar. Pesanan memuat objek pelanggan dan array barang, dan setiap barang adalah objek lagi. Di JSON Schema, nilai di dalam properties adalah skema lengkap, jadi skema bisa bersarang sedalam datanya. Untuk array, kata kunci items berisi satu skema yang berlaku bagi setiap elemen. Dokumentasi Understanding JSON Schema mencatat satu elemen yang tidak cocok membuat seluruh array tidak sah, dan array kosong selalu lolos items.

{
  "type": "object",
  "properties": {
    "anggota": {
      "type": "object",
      "properties": { "nomor": { "type": "string" } },
      "required": ["nomor"]
    },
    "buku": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": { "isbn": { "type": "string" }, "hari": { "type": "integer" } },
        "required": ["isbn"]
      }
    }
  }
}

Pesan "data tidak sah" tidak membantu siapa pun; pemeriksa harus menyebut letak pelanggarannya. Spesifikasi JSON Schema 2020-12 menulis letak itu sebagai JSON Pointer (RFC 6901): urutan nama field dan indeks array, masing-masing diawali garis miring. Pointer /buku/1/hari menunjuk field hari di elemen kedua array buku, karena indeks dimulai dari 0. Pointer kosong menunjuk seluruh dokumen. Karakter ~ di nama field ditulis ~0 dan garis miring ditulis ~1, sehingga field bernama a/b menjadi /a~1b.

RFC 9457 memakai pointer yang sama dalam bentuk fragmen URI, misalnya #/age, untuk menunjuk field bermasalah di contoh respons galat validasinya. Modul 3 memakai bentuk itu.

Latihan

0/3 lulus

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

Latihan 3 dari 3

Skema meminta qty setiap barang bertipe integer. JSON Pointer mana yang menunjuk satu-satunya pelanggaran di data ini?

{ "id": "PSN-1101",
  "barang": [
    { "sku": "BRS-5", "qty": 2 },
    { "sku": "MNY-2", "qty": "1" },
    { "sku": "GLA-1", "qty": 1 }
  ] }
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke