CRUD REST API Lengkap
Penjelasan
REST API CRUD lengkap di Echo menggabungkan semua materi sebelumnya: Group untuk path terorganisir, Bind+Validate untuk data masuk yang aman, GORM untuk persist ke database — pola ini yang membuat project Echo cukup terstruktur meski tetap ringan dibanding framework opinionated seperti NestJS.
Contoh Konsep
produkGroup := e.Group("/produk")
produkGroup.GET("", func(c echo.Context) error {
var produk []Produk
db.Find(&produk)
return c.JSON(http.StatusOK, produk)
})
produkGroup.POST("", func(c echo.Context) error {
var req Produk
if err := c.Bind(&req); err != nil {
return err
}
db.Create(&req)
return c.JSON(http.StatusCreated, req)
})
produkGroup.DELETE("/:id", func(c echo.Context) error {
db.Delete(&Produk{}, c.Param("id"))
return c.NoContent(http.StatusNoContent)
})
Praktikum
Bikin e.Group("/artikel") dengan 3 route: GET "" (semua artikel via db.Find()), POST "" (tambah baru via c.Bind() + db.Create()), DELETE "/:id" (hapus via db.Delete(), respons NoContent).
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
db.Delete(&Produk{}, c.Param("id")) TIDAK error walau id-nya tidak ditemukan di database — GORM cuma "tidak mengubah apa pun" tanpa error, kalau butuh respons 404 saat id tidak ditemukan, cek dulu dengan First() sebelum memanggil Delete().