ring-middleware-format
2015-11-10 本文已影响67人
红尘赌客
简介
ring-middleware-format是一系列Ring中间件,用于解析请求map的:body
,以及序列化响应map的:body
。内置支持格式JSON/MessagePack/YAML/EDN/Transit over JSON/Msgpack,并且能够自定义格式。
wrap-restful-format
该中间件函数支持内置的所有格式,接受一个可选的:formats
参数,用于配置要处理的格式,列表中的第一项同时作为默认的序列化格式。例如
(wrap-restful-format handler :formats [:json :edn :yaml])
对于内容为json格式(application/json)的请求,wrap-restful-format为之增加了:params以及:body-params。对于以下请求
(mock/content-type
(mock/body
(mock/request :post "/hello")
"{\"x\":1}")
"application/json")
以wrap-restful-format处理json
(def app
(wrap-restful-format
(fn [request] (println request) {})
:formats [:json]))
(app request)
可以看到打印出来的请求
{:params {x 1}, :body-params {x 1}, ...}
总结一下,wrap-restful-format的:json
格式处理application/json
请求,解析body的json对象,并将json对象的属性和值存放到参数的:params
和:body-params
中。