MATERI 13 / 20
HTTP dan API: kontrak dua sisi
API adalah batas tempat dua bagian sistem bertukar pesan. Menentukan kontraknya membantu klien dan server menghadapi keberhasilan, input salah dan kegagalan jaringan dengan konsisten.
Request membawa tujuan dan konteks
Permintaan memiliki method, alamat, header dan kadang body. Tentukan data yang wajib dikirim dan identitas yang diperlukan. Server tidak boleh mempercayai harga atau kepemilikan hanya karena klien mengirimkannya. Ambil keputusan penting dari data dan izin yang dikelola server.
Respons perlu bentuk yang disepakati
Status HTTP menyampaikan kategori hasil, sedangkan body menjelaskan data atau error yang dibutuhkan aplikasi. Tentukan nama field dan perilaku saat data kosong. JSON yang valid masih bisa memiliki bentuk salah. Periksa kontrak sebelum mengubah state menjadi berhasil, lalu tampilkan pesan yang membantu tanpa membocorkan detail internal.
Tidak menerima respons bukan bukti gagal simpan
Jaringan bisa putus setelah server menyimpan data tetapi sebelum respons diterima. Mengulangi operasi dapat membuat duplikat. Untuk tindakan yang sensitif terhadap pengulangan, rancang identitas operasi dan aturan idempotensi di server. Di klien, bedakan loading, berhasil, gagal dan status yang belum dapat dipastikan.
POST /api/catatan
Body: {"judul":"Rencana"}
201: {"id":"c1","judul":"Rencana"}
400: {"error":{"code":"INVALID_TITLE","message":"Isi judul"}}
Jaringan putus → periksa status sebelum mengulang operasi sensitif.Giliran kamu.
Tulis kontrak endpoint membuat catatan: request, respons berhasil, input kosong, tidak login dan jaringan putus. Tentukan cara mencegah pengulangan membuat duplikat.
- Bentuk request dan respons tertulis
- Status jaringan dibedakan dari status bisnis
- Pengulangan operasi dipikirkan