Study
Gin

Response Methods: c.JSON() & gin.H

Penjelasan

c.JSON(status, data) mengirim response JSON, argumen pertama status code (angka biasa, mis. 200, BUKAN konstanta seperti Echo/Fiber, walau Gin juga menyediakan konstanta http.StatusOK kalau mau lebih deskriptif). gin.H adalah shortcut Gin untuk map[string]interface{}, mirip fiber.Map di Fiber.

Contoh Konsep

r.GET("/teks", func(c *gin.Context) {
	c.String(200, "Ini teks biasa")
})

r.GET("/json", func(c *gin.Context) {
	c.JSON(200, gin.H{
		"nama":  "Kaos CompileDaily",
		"harga": 99000,
	})
})

r.GET("/tidak-ditemukan", func(c *gin.Context) {
	c.JSON(404, gin.H{"error": "Data tidak ditemukan"})
})

Praktikum

Buat route GET /produk/:id yang merespons c.JSON(404, ...) kalau c.Param("id") sama dengan "999", atau c.JSON(200, ...) berisi id dan nama produk contoh untuk id lainnya.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

gin.H{} adalah literal map biasa yang bisa langsung dituliskan inline tanpa perlu deklarasi struct terpisah — cocok untuk response ad-hoc yang strukturnya sederhana dan tidak dipakai berulang, tapi untuk response yang bentuknya konsisten dipakai di banyak endpoint, struct Go biasa (seperti ProdukRequest) tetap lebih baik karena type-safe.