Study
Yesod

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.

Editor Latihan

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.