Releases: oliyh/martian
Releases · oliyh/martian
0.2.2
This release fixes:
- Resolve $ref in requestBody before processing #250 - thanks @schneiderlin
- Parameter aliases now work in nested schemas, and are computed lazily for performance in #248 thanks @marksto
This release adds:
- Support route name generation via :route-name-sources option, enabling use with APIs that lack operationId in #245, thanks @marksto
- Handle response status wildcard ranges (1XX through 5XX) as per the OpenAPI spec #251 - thanks @bombaywalla
Full Changelog: 0.2.1...0.2.2
0.2.1
This release improves:
- Handle invalid handlers properly by @marksto in #239
- Account for default request headers by @marksto in #242
- Fix interceptors order in
request-forchain by @marksto in #243 - Add default content types by @marksto in #241
- Add logging and reduce noise in logs by @marksto in #244
Many thanks to @marksto for his tireless efforts!
Full Changelog: 0.2.0...0.2.1
Marktian
🔥 WARNING: Breaking changes relating to content-type and encoding
Every effort has been made to maintain backward compatibility, but the nature of the changes is such that the fixes introduced will inevitably change existing, incorrect behaviour.
This release breaks:
- Martian's built-in media type encoders (a map produced by the martian.encoders/default-encoders function) are now effectively ordered. This restores the expected behaviour, but may affect the client code if many (3 or more on JVM) custom encoders were added to the default ones, resulting in a change in the order of the map.
- The supported-content-types function now preserves the encoders declaration order. This affects the OpenAPI definition parsing and is actually capable of breaking the code of some library clients. For instance, now, but only when applicable, the "application/transit+json" encoder may be chosen instead of the "application/json".
- The :as value (used for Content-Type-based output auto-coercion by some target HTTP clients) of built-in media type encoders is now chosen correctly and takes into account the #234. This will affect previously recorded VCR files for clj-http and hato clients, although the changes should be superficial, because the recorded request bodies and other details were not affected.
- The legacy martian.interceptors/default-encode-body var was (intentionally) removed to signal to library customers that changes to their encoding/decoding code may be required
This release fixes:
- Response Content-Type header is now properly retrieved for all supported HTTP clients, closes #232
- All target HTTP clients now receive correct, client-specific config options for output (auto-)coercion, so all existing and potential response coercion issues should now go away, closes #234 and partially fixes #58
- The json/decode no longer called twice in a row with clj-http in case the API operation.response.content is "/", closes #189
- The martian.encoders/default-encoders function result is now effectively ordered, closes #237
- The "application/transit+msgpack" no longer sneaks into the bb/http-client's supported content types on BB/SCI, closes #233
- The cljs-http-promise module tests no longer fall silently, closes #236
- The cljdoc build error for the Martian core module should now be fixed
This release improves:
- The project README structure, interlinking, copy (including brand new sections on default and custom behaviour) and usage examples (including the custom media type example fix)
This release adds:
- An ability to customise built-in Transit, JSON, and EDN encoders with a complete set of encoding/decoding options
- Implicit raw types coercion functions in the martian.encoders namespace — as-string, as-stream, and as-bytes — so the encoder :as value works type-safely and in accordance with the design of HTTP client libraries.
- Constructor functions for encoders of all built-in media types in the martian.encoders namespace — transit-encoder, json-encoder, edn-encoder, and form-encoder — which can be used directly to more easily customise the built-in encoders.
- An ability to bootstrap Martian instance with custom request/response encoders and HTTP client-specific options, such as :async? and :use-client-output-coercion?
This release is all down to the indefatigable efforts of @marksto. Thank you for all your efforts!
Beta MAX
Deppedy doo-da
Day of the Diesels
This release adds:
- Support for collectionFormat, closes #61 in #207
- Form encoder #211
clojure.datafy/nav-ize the routes whenmartian.core/explore-ing #202 thanks to @danieroux
This release improves:
To infinity and beyond
This release adds:
- Support for
infin default value for numbers #193 thanks @robertluo
This release improves:
- Example in readme #185 thanks @LucianoLaratelli
- Support for references in swagger specs #196 thanks @RafaeLeal
- Description of the Babashka client in the README #191 thanks @lispyclouds
Superterrestrial
I for one welcome our new AI overlords
Ba-boom ba-bashka
This release adds support for:
- Babashka! #165 thanks @borkdude
explorereturn value now indicates deprecated endpoints #164 thanks @wkok- Support for local file definitions #174 #175
This release improves:
- Upgrade clj-http-lite implementation #170
- Remove old notice from README #173 thanks @The-Alchemist