Hi, I've seen some reitit handlers extract the following keys from request
:
{:keys [path-params query-params body-params]}
Yet when I inspect my request map I only see
:query-string
:path-params
:body
Does anyone know the reason for this discrepancy? Am I on the wrong version of reitit? I'm using [metosin/reitit "0.5.10"]
1ā
query-params
are added by https://github.com/metosin/reitit/blob/master/modules/reitit-middleware/src/reitit/ring/middleware/parameters.clj middleware, and body-params
are added by https://github.com/metosin/reitit/blob/master/modules/reitit-middleware/src/reitit/ring/middleware/muuntaja.clj#L58 middleware š You can see in https://github.com/metosin/reitit/blob/master/examples/ring-spec-swagger/src/example/server.clj#L86 example how they are added
It's perhaps also worth noting that query-params
can come from the https://github.com/ring-clojure/ring/blob/1.7.0/ring-core/src/ring/middleware/params.clj#L48 that does the same. You don't have to use the reitit
middlewares, but they are data-driven so they play nicely with the middleware chain.
It's the same with body-params
. We have our own middleware that handles JSON parsing (i.e. we're not using muuntaja for historical reasons), but we inject the data into :body-params
so that we can leverage reitit
coercion to inspect and coerce the data therein
It's really up to you!
https://github.com/pariyatti/kosa-crux is reitit (though I'm not sure it would qualify as "normal" anything since this is my first time with reitit and a return to clojure on my part after a 5 year hiatus)
Thanks. I was looking for something using reitit and pedestal together but this actually is a good project to read over as well. Iām fairly new to clojure so Iām just hunting for projects to skim over.
Most welcome. You can maybe bookmark this, as I'm quite literally just getting back to active development today (pandemic travel back to my home country over the past couple months, naturally).
1š