pic*_*ick 3 clojure compojure ring
在我的Web处理程序中,我定义了以下内容:
(:require ...
[ring.middleware.cookies :refer [wrap-cookies]]
[ring.middleware.multipart-params :refer [wrap-multipart-params]]
[ring.middleware.params :refer [wrap-params]]
[ring.middleware.keyword-params :refer [wrap-keyword-params]]
[ring.middleware.content-type :refer [wrap-content-type]]
[ring.middleware.format-response :refer [wrap-restful-response]
...)
(def app
(-> (routes home/my-routes)
(wrap-cookies)
(wrap-params)
(wrap-multipart-params)
(wrap-keyword-params))))
Run Code Online (Sandbox Code Playgroud)
一切正常.使用看起来像"../test?foo=123"的URL测试卷曲给我一个看起来像{:foo 123}的参数图.但是,显示为关键字的实际上是一个字符串:( keyword?:foo)返回false.
我已经尝试重新安排处理程序并一次删除它们,但无济于事.是否有关于compojure的东西将关键字转换回字符串?谢谢
wrap-keyword-params中间件应该在wrap-params和之后运行wrap-multipart-params,所以你的应用应该如下所示:
(def app
(-> (routes home/my-routes)
(wrap-keyword-params)
(wrap-cookies)
(wrap-params)
(wrap-multipart-params))))
Run Code Online (Sandbox Code Playgroud)