我可以通过以下方式轻松获取请求参数:
(:foo params)
Run Code Online (Sandbox Code Playgroud)
但是,当我有这样的请求时:
/api?foo=1&foo=2&foo=3
Run Code Online (Sandbox Code Playgroud)
我只是回来,"3"而我期待一个阵列["1","2","3"].
我不确定为什么会这样,因为当我查看代码时:
https://github.com/ring-clojure/ring-codec/blob/master/src/ring/util/codec.clj#L128
它似乎调用assoc-conj哪个应该将同名的多个参数转换为包含值的向量.
我在这里遗漏了什么或这是一个错误吗?
使用标准的Clojure解构形式:
(GET "/api" {{:strs [foo]} :query-params} (str foo))
curl "http://localhost:3000/api?foo=1&foo=2&foo=3"
==> ["1" "2" "3"]
Run Code Online (Sandbox Code Playgroud)
doc:https://github.com/weavejester/compojure/wiki/Destructuring-Syntax