All notable changes to this project will be documented in this file.
- make optional parameters less restricted
- vararg params are now automatically nilable
- fixed bug with path parameters
- added kw-varargs
- added defaults option
- client option is evaluted rather than used as a symbol
- each endpoint function now embeds the function symbol and the arguments it was passed into the request map using keys
::name
and ::args
. This is to help
with all kinds of caching jobs. - it is not longer legal to skip argument vector in endpoint definitions, instead there's a new optional spec that can be supplied after function symbol,
that is applied to conformed argument list. This enables one to spec relations of two parameters. It's essentially
(s/& (s/cat param spec) additional-spec)
.
- added new param meta tags
:form
and :form-map
to denote form params. Default behaviour of :body
is now
to be added to request as a body. :json-bodies
opt has been removed and :jsonify-bodies
opt has been added. The new opt regulates the default
behaviour of converting body parameters to json.:client
has been added, which is a fn that is invoked on the map before it's returned. Defaults to identity
but
this is the perfect place to stick in your client function if you're so inclined.
- improve date unforming, default implementatin now returns a
java.time
object on best effort basis - when specifying path parameters at path definition site, param symbols are no longer needed.
e.g
["{id}" id ::id]
is now shortened to ["{id}" ::id]
.
- add unform to date conformer
- added ability to specify path parameters for whole subtree at a single site
- fix error when parameter vector was missing
- fix error when nil parameter is passed to parameter marked with
:json
- spec coercion is now used on passed parameters, which is quite a breaking change, but it unified a lot of use-cases, like date formatting.
- removed :json meta, this is now handled by conformers, added utility functions for adding json conformers to param specs
- added a new option,
value-transform
, allows user to specify a general transformation for parameter values. - added a default implementation of
value-transform
, see README