The highly productive Julia web framework

View the Project on GitHub GenieFramework/Genie.jl

Handling query params (GET variables)

Genie makes it easy to access query params: values sent as part of the URL over GET requests. All these values are automatically collected by Genie and exposed in the @params collection (which is part of the Router module).


using Genie, Genie.Router

route("/hi") do
  name = haskey(@params, :name) ? @params(:name) : "Anon"
  "Hello $name"

If you access the app will respond with “Hello Anon” since we’re not passing any query params.

However, requesting will in turn display “Hello Adrian” as we’re passing the name query variable with the value Adrian. This variable is exposed by Genie as @params(:name).

The Requests module

Genie provides a set of utilities for working with requests data within the Requests module. You can use the getpayload method to retrieve the query params as a Dict{Symbol,Any}. We can rewrite the previous route to take advantage of the Requests utilities.


using Genie, Genie.Router, Genie.Requests

route("/hi") do
  "Hello $(getpayload(:name, "Anon"))"

The getpayload function has a few specializations, and one of them accepts the key and a default value. The default value is returned if the key variable is not defined. You can see the various implementations for getpayload using the API docs or Julia’s help> mode.