我有以下Compojure路线:
(defroutes my-handler
(GET "/:my-model-id" [id] (render-my-model (parse-int id))))
不幸的是,对于我这样定义的每条路由,我必须手动添加一个调用来解析传入的整数。
我创建了Ring中间件,可以遍历任何form-params
和request-params
,并解析任何看起来可能是整数的内容。但是,此中间件不适用于自定义的Compojure路由。
有谁知道如何让Compojure自动处理整数解析?我可以以某种方式将它连接到我现有的中间件吗?
答案 0 :(得分:1)
不幸的是,compojure
将在解析了params之后直接调用路由定义生成的函数。
AFAIC唯一的方法就是直接修改compojures代码库,或者在https://github.com/weavejester/compojure/blob/master/src/compojure/core.clj#L30
assoc-route-params
{{1}}上使用Robert Hooke(技术说明)