Study
Genie

Middleware / Pipeline

Penjelasan

Genie menyediakan mekanisme pipeline lewat hook seperti `Genie.Router.before_action` atau fungsi middleware kustom yang didaftarkan pada route tertentu, dijalankan sebelum handler utama. Ini dipakai untuk keperluan lintas endpoint seperti pengecekan autentikasi, logging, atau penambahan header keamanan. Middleware bisa dipasang secara global (untuk semua route) atau spesifik per route dengan menambahkan keyword `before` saat mendefinisikan route, memberi fleksibilitas mana saja endpoint yang perlu lapisan tambahan tersebut.

Contoh Konsep

using Genie.Router

function cek_login()
    if !authenticated()
        return redirect("/login")
    end
end

function log_request()
    println("Request masuk ke: $(Genie.Requests.jspath())")
end

route("/dashboard", before = [log_request, cek_login]) do
    "Halaman dashboard"
end

Praktikum

Buat fungsi middleware sederhana yang mencetak waktu request, lalu pasang di route "/admin" sebelum handler utama.

Editor Latihan

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

Tips

Urutan fungsi di array `before` menentukan urutan eksekusi — taruh pengecekan autentikasi setelah logging kalau ingin tetap mencatat request meski ditolak.