Uma macro para definir o manipulador para compojure que corresponde aos parâmetros automaticamente.
(defmacro defhandler
[name args & body]
`(defn ~name [req#]
(let [{:keys ~args :or {~'req req#}} (:params req#)]
~@body)))
Em seguida, use-o para definir o gerenciador e as rotas:
(defhandler signup [username password]
....)
(defroutes app-routes
(POST "/signup" [] signup)