Skip to content

Latest commit

 

History

History
36 lines (28 loc) · 1.18 KB

2013-09-20-request_types.md

File metadata and controls

36 lines (28 loc) · 1.18 KB
layout title categories tags avatarimg author
post
Luminus手册-请求
luminus
clojure
luminus
/img/head.jpg
wangyifan

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