Middleware Dasar
Penjelasan
Yesod menyediakan mekanisme middleware lewat fungsi yesodMiddleware di dalam instance Yesod App, yang secara default sudah membungkus tiap request dengan fitur seperti logging dan proteksi CSRF bawaan. Kita bisa menambahkan logic middleware sendiri dengan menggabungkan handler custom sebelum atau sesudah memanggil handler asli. Berbeda dari Plug di Phoenix yang disusun sebagai pipeline eksplisit di router, middleware Yesod lebih terpusat di satu titik (yesodMiddleware), cocok untuk logic yang benar-benar berlaku ke semua route seperti header keamanan tambahan atau pencatatan waktu response. Untuk logic yang hanya berlaku ke sebagian route, biasanya dipakai kombinasi requireAuthId atau helper khusus di dalam handler terkait, bukan middleware global.
Contoh Konsep
instance Yesod App where
yesodMiddleware handler = do
defaultYesodMiddleware $ do
addHeader "X-App-Name" "TokoApp"
handler
-- defaultYesodMiddleware sudah termasuk logging dan proteksi CSRF bawaan
Praktikum
Tambahkan header custom X-Powered-By dengan nilai BlogApp-Yesod ke setiap response lewat yesodMiddleware.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Selalu bungkus middleware custom di dalam defaultYesodMiddleware alih-alih menggantinya total, supaya fitur bawaan seperti proteksi CSRF tetap aktif.