Study
Echo

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).

Editor Latihan

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().