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

Otorisasi dan regresi kontrak

Perubahan yang merusak dan regresi kontrak

Setelah pelajaran ini kamu bisa membedakan perubahan kontrak yang merusak klien dari yang aman, di respons maupun di permintaan, dan mendeteksinya dengan membandingkan dua versi skema.

±13 menitDiperiksa 7 Okt 2026

Materi

Kontrak berubah seiring kebutuhan. Panduan desain API layanan mikro di Azure Architecture Center memisahkan dua jenis perubahan. Menghapus field dari model dapat merusak klien yang mengharapkan field itu ada. Menambah field tidak merusak kompatibilitas, karena klien mengabaikan field yang tidak dikenalinya di respons. Panduan desain web API di situs yang sama menggolongkan penghapusan dan penggantian nama field sebagai perubahan yang dapat merusak klien, dan panduan layanan mikro meminta versi API baru untuk perubahan semacam itu sambil tetap mendukung versi sebelumnya.

PerubahanDi responsDi permintaan
Menambah field opsionalamanaman
Menambah field wajibaman bagi klien yang membacamerusak: klien lama tidak mengirimnya
Menghapus fieldmerusakaman bila server tidak menolak field lain
Mengganti nama fieldmerusakmerusak bila nama baru wajib
Mengubah tipe fieldmerusakmerusak
Field wajib menjadi opsionalmerusak: klien bisa menerima respons tanpa field ituaman

Arahnya terbalik antara respons dan permintaan. Di respons, klien adalah pembaca, jadi yang merusak adalah hilangnya sesuatu yang dibaca klien. Di permintaan, klien adalah penulis, jadi yang merusak adalah tuntutan baru yang tidak dipenuhi klien lama. Panduan Azure menyebut layanan tetap harus menangani permintaan dari klien lama yang tidak mengirim field baru.

Uji regresi kontrak menjalankan kembali kasus-kasus versi lama terhadap server versi baru. Kasus yang tadinya lulus lalu gagal menandai perubahan yang merusak, dan ditemukan sebelum klien menemukannya di produksi.

Latihan

0/3 lulus

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

Latihan 3 dari 3

Versi baru API menambah field estimasiTiba di respons detail pesanan. Esok harinya 40 uji regresi Dimas merah, semuanya dengan pelanggaran additionalProperties di /estimasiTiba. Kontrak tertulis tidak melarang field tambahan di respons. Apa langkah yang sesuai?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke