Study
Genie

Request & Response Handling

Penjelasan

Selain parameter route, Genie menyediakan akses ke bagian lain dari HTTP request lewat modul `Genie.Requests`, seperti query string (`getpayload`), header, dan body mentah. Untuk response, Genie punya struct `Genie.Renderer.Respond` atau helper seperti `respond()` untuk mengatur status code dan header secara manual, bukan cuma mengembalikan string polos. Mengontrol response secara eksplisit penting ketika membangun API — misalnya mengembalikan status 404 dengan pesan JSON kustom, atau menambahkan header `Cache-Control` pada response tertentu.

Contoh Konsep

using Genie.Router
using Genie.Requests
using Genie.Responses

route("/cari") do
    kata_kunci = haskey(params(:query), "q") ? params(:query)["q"] : ""
    "Hasil pencarian untuk: $kata_kunci"
end

route("/status-khusus") do
    setstatus(404)
    setheaders(Dict("X-Custom-Header" => "tidak-ditemukan"))
    "Data tidak ditemukan"
end

Praktikum

Buat route "/filter" yang membaca query string "kategori" dan mengembalikan pesan berbeda kalau parameter tidak ada.

Editor Latihan

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

Tips

Selalu validasi keberadaan key pada query string dengan `haskey` sebelum mengaksesnya, supaya request tanpa parameter tidak memicu error.