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

Kontrak dan kondisi keberhasilan

Kontrak API dan kondisi keberhasilan

Setelah pelajaran ini kamu bisa membaca kontrak sebuah endpoint sebagai daftar kasus status, jenis isi, dan bentuk badan, lalu memeriksa respons tiruan terhadapnya.

±14 menitDiperiksa 7 Okt 2026

Materi

Kontrak API adalah janji tertulis antara penyedia API dan pemakainya: permintaan seperti apa yang diterima, dan respons seperti apa yang dikembalikan untuk setiap kasus. Panduan desain API layanan mikro di Azure Architecture Center menyebut API sebagai kontrak antara layanan dan kliennya, dan mengingatkan bahwa perubahan API bisa merusak klien yang bergantung padanya. Kontrak bisa berupa tabel di dokumentasi atau berkas skema; bentuknya berbeda, isinya sama.

Kasus GET /v1/buku/{isbn}StatusContent-TypeBadan
Buku ditemukan200application/jsonobjek buku
ISBN tidak terdaftar404application/problem+jsonrincian galat
Tanpa token401application/problem+jsonrincian galat

Pengujian kontrak memeriksa tiga lapis untuk setiap kasus: kode status, jenis isi di header Content-Type, dan bentuk badan. Ketiganya diperiksa terpisah karena masing-masing bisa salah sendiri. MDN mencatat Response.ok bernilai true untuk status 200 sampai 299 tanpa melihat isi badan. Server yang sedang dirawat bisa menjawab 200 dengan halaman HTML, dan server yang salah rancang bisa menjawab 200 dengan badan berisi pesan gagal. Keduanya lolos pemeriksaan status, dan keduanya melanggar kontrak.

Content-Type berisi jenis media, kadang diikuti parameter seperti charset. RFC 9110 menyatakan bagian type dan subtype tidak membedakan huruf, jadi application/json; charset=utf-8 dan Application/JSON menyatakan jenis yang sama. Di kelas ini respons API selalu berupa objek tiruan { status, headers, body } dengan nama header berhuruf kecil, sehingga hasil setiap uji sama setiap kali dijalankan.

Latihan

0/3 lulus

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

Latihan 3 dari 3

Kontrak POST /v1/pesanan menyatakan: bila stok habis, server menjawab 409 dengan Content-Type application/problem+json. Di server uji, pesanan beras yang stoknya habis dijawab 200 dengan Content-Type application/json dan badan { "sukses": false, "pesan": "Stok habis" }. Apa kesimpulan uji kontraknya?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke