簡介
ring-middleware-format是一系列Ring中間件虎忌,用于解析請求map的:body
坑匠,以及序列化響應(yīng)map的:body
郁油。內(nèi)置支持格式JSON/MessagePack/YAML/EDN/Transit over JSON/Msgpack缩膝,并且能夠自定義格式独撇。
wrap-restful-format
該中間件函數(shù)支持內(nèi)置的所有格式屑墨,接受一個可選的:formats
參數(shù),用于配置要處理的格式纷铣,列表中的第一項(xiàng)同時作為默認(rèn)的序列化格式绪钥。例如
(wrap-restful-format handler :formats [:json :edn :yaml])
對于內(nèi)容為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}, ...}
總結(jié)一下程腹,wrap-restful-format的:json
格式處理application/json
請求,解析body的json對象儒拂,并將json對象的屬性和值存放到參數(shù)的:params
和:body-params
中寸潦。