(auto-coercion-by-client? {:keys [type value] :as _coerce-as}
{:keys [auto-coercion-pred] :as _coerce-opts})
Checks if a response should have already gone through the client's auto-coercion (to avoid double coercion of the same sort).
A workaround needed specifically for clj-http
and hato
clients
with response auto-coercion being turned on e.g. due to a presence
of the '/' response content in the OpenAPI/Swagger definition.
Checks if a response should have already gone through the client's auto-coercion (to avoid double coercion of the same sort). A workaround needed specifically for `clj-http` and `hato` clients with response auto-coercion being turned on e.g. due to a presence of the '*/*' response content in the OpenAPI/Swagger definition.
(get-coerce-as encoders
media-type
{:keys [type-aliases missing-encoder-as default-encoder-as]})
(set-default-coerce-opts
{:keys [skip-decoding-for auto-coercion-pred type-aliases request-key
missing-encoder-as default-encoder-as]
:or {missing-encoder-as :auto default-encoder-as :string}})
Returns an HTTP client-specific response coercion options, applying default values, if necessary:
:skip-decoding-for
— a set of media types for which the decoding can
be skipped in favor of the client built-in one:auto-coercion-pred
— a pred of coerce-as-value
that checks whether
client response auto-coercion has been applied:request-key
— usually :as
, though some clients expect other
keys, e.g. :response-type
for the cljs-http
:type-aliases
— a mapping of client-specific (raw) type aliases:missing-encoder-as
— for the case where the media type is missing or
when there is no encoder for the specified type:default-encoder-as
— for in case the found encoder for the specified
media type omits its own :as
valueReturns an HTTP client-specific response coercion options, applying default values, if necessary: - `:skip-decoding-for` — a set of media types for which the decoding can be skipped in favor of the client built-in one - `:auto-coercion-pred` — a pred of `coerce-as-value` that checks whether client response auto-coercion has been applied - `:request-key` — usually `:as`, though some clients expect other keys, e.g. `:response-type` for the `cljs-http` - `:type-aliases` — a mapping of client-specific (raw) type aliases - `:missing-encoder-as` — for the case where the media type is missing or when there is no encoder for the specified type - `:default-encoder-as` — for in case the found encoder for the specified media type omits its own `:as` value
(skip-decoding? {:keys [type] :as _coerce-as}
content-type
{:keys [skip-decoding-for] :as _coerce-opts})
Checks whether a response decoding (by Martian) should be skipped.
Skip only when the client did coerce a response to the final type,
which may not be the case if the 'Accept' encoder had some custom
(non-default) :as
value, meaning it still expects to decode the
response from this (intermediary) type to the final one.
Checks whether a response decoding (by Martian) should be skipped. Skip only when the client did coerce a response to the final type, which may not be the case if the 'Accept' encoder had some custom (non-default) `:as` value, meaning it still expects to decode the response from this (intermediary) type to the final one.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close