reitit/examples/just-coercion-with-ring/src/example/middleware.clj

19 lines
707 B
Clojure
Raw Normal View History

2018-06-10 20:10:46 +00:00
(ns example.middleware
(:require [muuntaja.middleware]
[ring.middleware.params]
[reitit.middleware :as middleware]
[reitit.ring.coercion :as rrc]))
;; unlift Middleware Record into vanilla Ring middlewareL
;; NOTE: to support format-based body coercion, an options map needs
;; to be set with :extract-request-format and extract-response-format
(defn wrap-coercion [handler resource]
(middleware/chain
[rrc/coerce-exceptions-middleware
rrc/coerce-request-middleware
rrc/coerce-response-middleware]
handler
resource
{:extract-request-format (comp :format :muuntaja/request)
:extract-response-format (comp :format :muuntaja/response)}))