Middleware Dasar
Penjelasan
Middleware Fiber bertipe fiber.Handler juga (SAMA seperti handler biasa) — dipanggil lewat app.Use(), dan WAJIB memanggil c.Next() untuk meneruskan ke handler/middleware berikutnya. Pola pemanggilannya lebih mirip Express.js next() dibanding pola higher-order function Echo.
Contoh Konsep
func CekUmur(c *fiber.Ctx) error {
umur, _ := strconv.Atoi(c.Query("umur"))
if umur < 18 {
return c.Status(fiber.StatusForbidden).SendString("Akses ditolak, umur minimal 18 tahun")
}
return c.Next() // lanjut ke handler berikutnya
}
app.Get("/dewasa", CekUmur, func(c *fiber.Ctx) error {
return c.SendString("Selamat datang!")
})
Praktikum
Buat middleware CekJamKerja(c *fiber.Ctx) error yang menolak akses (403) kalau jam sekarang (time.Now().Hour()) di luar rentang 8-17, dan memanggil c.Next() kalau masih dalam jam kerja. Pasangkan ke route GET /admin.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
c.Next() di Fiber dipanggil TANPA argumen dan cukup di-return langsung (return c.Next()) — beda dari next(c) Echo yang butuh argumen c eksplisit, pola ini lebih dekat ke gaya next() Express.js yang juga tanpa argumen.