Uma macro para definir o manipulador para compojure

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)