中间件和Compojure解构语法

时间:2014-01-16 17:02:53

标签: clojure compojure ring

我有以下Compojure路线:

(defroutes my-handler
  (GET "/:my-model-id" [id] (render-my-model (parse-int id))))

不幸的是,对于我这样定义的每条路由,我必须手动添加一个调用来解析传入的整数。

我创建了Ring中间件,可以遍历任何form-paramsrequest-params,并解析任何看起来可能是整数的内容。但是,此中间件不适用于自定义的Compojure路由。

有谁知道如何让Compojure自动处理整数解析?我可以以某种方式将它连接到我现有的中间件吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,compojure将在解析了params之后直接调用路由定义生成的函数。

AFAIC唯一的方法就是直接修改compojures代码库,或者在https://github.com/weavejester/compojure/blob/master/src/compojure/core.clj#L30

assoc-route-params {{1}}上使用Robert Hooke(技术说明)