Study
Fiber

Locals: Data Sharing Antar Middleware

Penjelasan

c.Locals("key", value) menyimpan data custom selama SATU request berjalan, dibaca kembali lewat c.Locals("key") — SATU method dipakai untuk MENULIS (dengan 2 argumen) MAUPUN MEMBACA (dengan 1 argumen), beda dari Echo yang punya dua method terpisah c.Set()/c.Get().

Contoh Konsep

func AuthMiddleware(c *fiber.Ctx) error {
	user := "Budi" // anggap sudah diverifikasi dari token
	c.Locals("user", user)
	return c.Next()
}

app.Get("/profil", AuthMiddleware, func(c *fiber.Ctx) error {
	user := c.Locals("user").(string) // type assertion, karena Locals() mengembalikan interface{}
	return c.SendString(fmt.Sprintf("Halo, %s!", user))
})

Praktikum

Buat middleware yang men-c.Locals("requestId", suatu string unik). Buat handler yang membaca kembali lewat c.Locals("requestId").(string) dan menampilkannya di response.

Editor Latihan

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

Tips

Nama method Locals (satu method, dua mode pemakaian tergantung jumlah argumen) adalah pola KHAS Fiber yang beda dari kebanyakan framework Go lain — perhatikan baik-baik jumlah argumen yang dipakai (2 untuk set, 1 untuk get) supaya tidak salah pemakaian.