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