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

Otorisasi dan regresi kontrak

Kasus otorisasi: 401, 403, dan 404 sebagai kontrak

Setelah pelajaran ini kamu bisa menyusun matriks kasus otorisasi dari kontrak, menurunkan status yang diharapkan untuk setiap kombinasi pemanggil dan sumber daya, dan memeriksa bahwa respons penolakan tidak membocorkan data.

±13 menitDiperiksa 7 Okt 2026

Materi

Arti 401 dan 403 sudah dibahas di kelas HTTP dan API Web; di sini keduanya menjadi kasus uji. RFC 9110 menyatakan 401 berarti permintaan tidak membawa kredensial autentikasi yang sah, dan server yang mengirim 401 wajib menyertakan header WWW-Authenticate berisi minimal satu tantangan. 403 berarti server memahami permintaan tetapi menolak memenuhinya, dan MDN menambahkan bahwa untuk 403, masuk ulang tidak mengubah hasilnya.

Pilihan ketiga sering terlewat. RFC 9110 membolehkan server menjawab 404 untuk sumber daya terlarang bila ingin menyembunyikan keberadaannya. Kontrak harus memilih salah satu dan menuliskannya. Bila kontrak memilih 404 untuk data milik orang lain, uji memastikan data orang lain dan data yang memang tidak ada dijawab sama persis. Bila jawabannya berbeda, siapa pun bisa menebak nomor mana yang ada.

GET /v1/pinjaman/{id}Pinjaman milik sendiriPinjaman anggota lain
Tanpa token401401
Token kedaluwarsa401401
Anggota200404
Pustakawan200200

Matriks ditulis dari kontrak, bukan dari perilaku server saat ini. Setiap sel menjadi satu kasus uji. Respons penolakan juga diperiksa isinya: badan 401, 403, atau 404 tidak boleh memuat data sumber daya yang ditolak.

Latihan

0/3 lulus

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

Latihan 3 dari 3

Kontrak Sumber Rezeki menyembunyikan pesanan milik pelanggan lain dengan 404. Di server uji, Budi meminta PSN-2001 milik Sari dan menerima 403, sedangkan PSN-9999 yang tidak ada dijawab 404. Apa temuan ujinya?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke