Skip to content

Releases: oliyh/martian

0.2.2

05 Feb 11:50

Choose a tag to compare

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

30 Sep 11:24

Choose a tag to compare

This release improves:

Many thanks to @marksto for his tireless efforts!

Full Changelog: 0.2.0...0.2.1

Marktian

08 Aug 09:46

Choose a tag to compare

🔥 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

14 Nov 21:50

Choose a tag to compare

This release improves:

  • VCR playback with response decoders / coercers, discussed in #181 and fixed by @lvh in #204

Full Changelog: 0.1.29...0.1.30

Deppedy doo-da

14 Nov 21:44

Choose a tag to compare

This release fixes:

  • Dependency on ring-codec

Full Changelog: 0.1.28...0.1.29

Day of the Diesels

28 Oct 20:58

Choose a tag to compare

This release adds:

  • Support for collectionFormat, closes #61 in #207
  • Form encoder #211
  • clojure.datafy/nav-ize the routes when martian.core/explore-ing #202 thanks to @danieroux

This release improves:

  • Correctly identifies required nested objects #197
  • Qualify js/Number to fix compiler warning #199
  • Ensure graceful failure for implementation-specific objects that vcr writes but can't read back #205 thanks @lvh

To infinity and beyond

24 Jan 10:01

Choose a tag to compare

This release adds:

This release improves:

Superterrestrial

24 Jul 13:30

Choose a tag to compare

This release adds:

  • The ability to generate urls with their querystrings #171
  • Support for date-time formats #149

This release improves:

  • VCR playback terminates stack when it returns a response #181

I for one welcome our new AI overlords

23 Jun 11:09

Choose a tag to compare

This release improves:

This release fixes:

  • Failing spec instrumentation when content-type is not specified, #179 thanks @wkok

Ba-boom ba-bashka

18 Apr 15:50

Choose a tag to compare

This release adds support for:

  • Babashka! #165 thanks @borkdude
  • explore return value now indicates deprecated endpoints #164 thanks @wkok
  • Support for local file definitions #174 #175

This release improves: