PUT & DELETE: Mengubah dan Menghapus Todo

Melengkapi CRUD: memperbarui data dengan PUT dan menghapus dengan DELETE yang menjawab 204 No Content.

Part 9 dari 17 ± 35 menit Gratis

Melengkapi CRUD

CRUD adalah empat operasi dasar data: Create (POST), Read (GET), Update (PUT), Delete (DELETE). Dua yang tersisa:

EndpointSuksesGagal
PUT /todos/{id}200 + todo terbaru404 bila ID tidak ada, 400 bila JSON rusak
DELETE /todos/{id}204 No Content (tanpa body)404 bila ID tidak ada

PUT: mengganti data

PUT bermakna "ganti data ini dengan versi baru", sehingga client mengirim seluruh isi yang bisa diubah (di sini title dan done). Handler-nya mirip POST, hanya saja datanya sudah ada:

var in struct {
    Title string `json:"title"`
    Done  bool   `json:"done"`
}
json.NewDecoder(r.Body).Decode(&in)
todo, ok := a.store.Update(id, in.Title, in.Done)
if !ok { /* 404 */ }
writeJSON(w, http.StatusOK, todo)

DELETE: menghapus data

Di Store, penghapusan memakai fungsi bawaan delete(map, kunci):

delete(s.items, id)

Di handler, setelah berhasil kita tidak punya data untuk dikirim, jadi jawab 204 No Content tanpa body:

w.WriteHeader(http.StatusNoContent)

Helper parseID

Karena membaca {id} dipakai di GET, PUT, dan DELETE, kode di bab 6 dipindahkan ke fungsi parseID (sudah disediakan di latihan). Fungsi ini mengembalikan (id, true) bila sukses, atau langsung menjawab 400 dan mengembalikan (0, false).

PUT vs PATCH

PUT mengganti semua field; PATCH hanya mengubah field yang dikirim. Untuk kursus ini kita cukup memakai PUT.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X