Study
Fiber

Query String & Body Parsing

Penjelasan

Query string diakses lewat c.Query("nama"), bisa diisi nilai default sebagai argumen kedua. Untuk body request, Fiber memakai c.BodyParser(&struct) — namanya beda dari c.Bind() Echo, tapi konsepnya SAMA: mem-parsing JSON (atau form data) jadi struct Go berdasarkan tag json:.

Contoh Konsep

type ProdukRequest struct {
	Nama  string  `json:"nama"`
	Harga float64 `json:"harga"`
}

app.Get("/cari", func(c *fiber.Ctx) error {
	q := c.Query("q")
	halaman := c.Query("page", "1") // nilai default "1"
	return c.SendString(fmt.Sprintf("Mencari: %s, halaman: %s", q, halaman))
})

app.Post("/produk", func(c *fiber.Ctx) error {
	var req ProdukRequest
	if err := c.BodyParser(&req); err != nil {
		return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": err.Error()})
	}
	return c.Status(fiber.StatusCreated).JSON(req)
})

Praktikum

Buat struct ArtikelRequest dengan field Judul dan Isi (tag json). Buat route POST /artikel yang meng-c.BodyParser() body request ke struct itu, merespons fiber.Map berisi pesan konfirmasi.

Editor Latihan

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

Tips

fiber.Map adalah alias siap pakai untuk map[string]interface{} — sedikit lebih ringkas ditulis dibanding map[string]interface{} manual tiap kali bikin response JSON ad-hoc, murni gula sintaksis (syntactic sugar) dari Fiber.