ivaneye.com

Luminus手册-请求

Requests

默认情况下,请求的参数(比如一个form的POST请求)将会被自动绑定到request的:params键上。

但是,如果你在请求体内传递一些特殊类型的参数,则你需要使用适合的中间件来处理他们。Luminus使用ring-middleware-format来处理这些参数。

中间件可以通过在noir.util.middleware/app-handler上添加:formats键来开启:

(def app (middleware/app-handler
          all-routes
          :formats [:json :edn]))

这样请求中的application/json和application/edn类型将会被中间件处理。相应的请求参数会在:params中。注意,这也会处理响应中的对应类型参数。具体信息请见Response Types章节。

下面是有效的格式化类型:

:json - JSON with string keys in :params and :body-params
:json-kw - JSON with keywodized keys in :params and :body-params
:edn - native Clojure format.
:yaml - YAML format
:yaml-kw - YAML format with keywodized keys in :params and :body-params
:yaml-in-html - yaml in a html page