ring.middleware.format-params
default-handle-error
(default-handle-error e _ _)Default error handling function used, which rethrows the Exception
get-or-guess-charset
(get-or-guess-charset req)Tries to get the request encoding from the header or guess it if not given in Content-Type. Defaults to utf-8
make-type-request-pred
(make-type-request-pred regexp)Function that returns a predicate fn checking if Content-Type request header matches a specified regexp and body is set.
parse-clojure-string
(parse-clojure-string s)Decode a clojure body. The body is merged into the params, so must be a map or a vector of key value pairs. An empty body is safely handled.
wrap-clojure-params
(wrap-clojure-params handler & {:keys [predicate decoder charset handle-error], :or {predicate clojure-request?, decoder parse-clojure-string, charset get-or-guess-charset, handle-error default-handle-error}})Handles body params in Clojure (*edn*) format. See wrap-format-params for details.
wrap-format-params
(wrap-format-params handler & {:keys [predicate decoder charset handle-error binary?]})Wraps a handler such that requests body are deserialized from to the right format, added in a :body-params key and merged in :params. It takes 4 args:
- :predicate is a predicate taking the request as sole argument to test if deserialization should be used.
- :decoder specifies a fn taking the body String as sole argument and giving back a hash-map.
- :charset can be either a string representing a valid charset or a fn taking the req as argument and returning a valid charset.
- :binary? if true :charset will be ignored and decoder will receive an InputStream
- :handle-error is a fn with a sig [exception handler request]. Return (handler obj) to continue executing a modified request or directly a map to answer immediately. Defaults to just rethrowing the Exception
wrap-json-kw-params
(wrap-json-kw-params handler & {:keys [predicate decoder charset handle-error], :or {predicate json-request?, decoder json/parse-string, charset get-or-guess-charset, handle-error default-handle-error}})Handles body params in JSON format. Parses map keys as keywords. See wrap-format-params for details.
wrap-json-params
(wrap-json-params handler & {:keys [predicate decoder charset handle-error], :or {predicate json-request?, decoder json/parse-string, charset get-or-guess-charset, handle-error default-handle-error}})Handles body params in JSON format. See wrap-format-params for details.
wrap-restful-params
(wrap-restful-params handler & {:keys [handle-error formats], :or {handle-error default-handle-error, formats [:json :edn :yaml :transit-msgpack :transit-json]}})Wrapper that tries to do the right thing with the request :body and provide a solid basis for a RESTful API. It will deserialize to JSON, YAML, Transit or Clojure depending on Content-Type header. See wrap-format-params for more details.
wrap-transit-json-params
(wrap-transit-json-params handler & {:keys [predicate decoder charset binary? handle-error options], :or {predicate transit-json-request?, options {}, binary? true, handle-error default-handle-error}})Handles body params in transit format over JSON. You can use an :options key to pass a map with :handlers and :default-handler to transit-clj. See wrap-format-params for details.
wrap-transit-msgpack-params
(wrap-transit-msgpack-params handler & {:keys [predicate decoder charset binary? handle-error options], :or {predicate transit-msgpack-request?, options {}, binary? true, handle-error default-handle-error}})Handles body params in transit format over msgpack. You can use an :options key to pass a map with :handlers and :default-handler to transit-clj. See wrap-format-params for details.
wrap-yaml-kw-params
(wrap-yaml-kw-params handler & {:keys [predicate decoder charset handle-error], :or {predicate yaml-request?, decoder yaml/parse-string, charset get-or-guess-charset, handle-error default-handle-error}})Handles body params in YAML format. Parses map keys as keywords. See wrap-format-params for details.
wrap-yaml-params
(wrap-yaml-params handler & {:keys [predicate decoder charset handle-error], :or {predicate yaml-request?, decoder yaml/parse-string, charset get-or-guess-charset, handle-error default-handle-error}})Handles body params in YAML format. See wrap-format-params for details.