我有以下Composjure路由:
(defroutes my-handler
(GET "/:my-model-id" [id] (render-my-model (parse-int id))))
不幸的是,对于我以这种方式定义的每个路由,我都必须手动添加一个调用来解析传入的整数。
我已经创建了Ring中间件,它可以遍历任何form-params
和request-params
,并解析任何看起来可能是整数的东西。但是,该中间件不适用于自定义的Composjure路由。
有人知道我如何让Composjure自动处理整数解析吗?我能以某种方式将它连接到我现有的中间件吗?
不幸的是,compojure
在解析参数后将直接调用从路由定义生成的函数。
AFAIC介于两者之间的唯一方法是直接修改组件代码库,或者在assoc-route-params
上使用Robert Hooke(通过技术手段)https://github.com/weavejester/compojure/blob/master/src/compojure/core.clj#L30