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

Batas nilai, skenario negatif, dan respons galat

Misi: menguji POST pesanan dan respons galatnya

Setelah pelajaran ini kamu bisa menulis skema badan permintaan dari kontrak, menguji bahwa permintaan rusak ditolak dengan problem details yang menunjuk lokasi yang tepat, dan menilai respons galat.

±17 menitDiperiksa 7 Okt 2026

Materi

Aplikasi kasir Sumber Rezeki mengirim pesanan baru lewat POST /v1/pesanan. Server wajib menolak permintaan yang melanggar kontrak dengan 422 dan problem details yang member errors-nya menunjuk setiap field bermasalah. Kamu menulis skema permintaan dari tabel kontrak, menguji penolakan server dengan kasus negatif, lalu menilai dua respons galat dari server uji.

Field badan permintaanAturan
pelangganwajib; objek dengan nama (teks 1–60 karakter, wajib) dan telepon (teks dengan pola ^08[0-9]{8,11}$, wajib)
barangwajib; array minimal 1 elemen; setiap elemen wajib memuat sku (teks dengan pola ^[A-Z]{3}-[0-9]+$) dan qty (integer 1–99), tanpa field lain
metodeBayarwajib; salah satu dari "tunai", "transfer", "qris"
catatanopsional; teks paling banyak 200 karakter
(field lain)ditolak

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 3 dari 4

Server menjawab permintaan dengan qty 0 seperti di bawah. Apa temuan uji yang benar?

HTTP/1.1 422 Unprocessable Content
Content-Type: application/problem+json

{ "type": "https://api.sumberrezeki.example/masalah/validasi",
  "title": "Pesanan tidak sah.",
  "status": 400,
  "errors": [ { "detail": "minimal 1", "pointer": "#/barang/0/qty" } ] }
Pilih satu jawaban

Latihan 4 dari 4

Untuk permintaan tanpa metodeBayar, server uji menjawab 500 berjenis application/problem+json dengan detail "TypeError: Cannot read properties of undefined (reading 'kode') at simpanPesanan (/srv/kasir/pesanan.js:88)". Apa yang Dimas laporkan?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke