RESTX 0.30
Today we are very happy to announce yet another release of RESTX, version 0.30.
New and Noteworthy
core improvements
- new settings support, allowing to easily define type safe settings, based on annotation processing
- many API reviews, which shouldn’t impact those who only use the annotation endpoints, but which make good steps toward API stabilization
- new customizable entity mapping support, allowing to use something else than json/Jackson marshalling/unmarshalling for your requests/responses body
- support for text/plain responses (when you use String in your return type)
- support for void return type in your resource endpoint methods (which defaults to a 204 No Content status response)
- support for enum in query params
shell improvements
- auto upgrade plugins when upgrading shell
- allow to compile and run app in non interactive mode, which for instance eases the creation of docker.io images
- use
JAVA_OPTS
andRESTX_OPTS
as vm options when launching the shell, allowing to set proxy config for example
api-docs improvements
- new “related operations” feature, easing navigation between operations, and reuse of responses in other requests (see screenshot to get an idea)
factory improvements
- multi injection in Factory allow to inject
Iterable<MyComponent>
in your components, see doc for details
others
- upgraded third party libraries versions
- several bug fixes and minor improvements
Contributions
Thanks a lot to the community who made this possible, especially the contributors to this release:
- Xavier Hanin (committer),
- Frédéric Camblor (committer)
- jetoile
Getting started / Upgrading
Want to get started now? Check out the related doc.
Upgrading from an earlier version?
- you just need to run
restx shell upgrade
to upgrade your shell and plugins. - in your projects you just need to update
restx.version
to 0.30 in your dependency descriptor - in your code you may have to adapt to some breaking changes, the most probable being that
SignatureKey
has moved to restx.security
You can check commits introducing breaking changes:
- 838d42c core: entity mapping - refactor how entities are deserialized from request body [BREAKING]
- 1ac17c5 core: default to text/plain for String,StringBuilder and StringBuffer [BREAKING]
- 5fe6366 core: entity mapping - refactor how entities are serialized in response [BREAKING]
- d36d28d core: API - review LifecycleListener methods parameters [BREAKING]
- 19e37d8 core: API - split HandlerMatch responsibilities between match and handling [BREAKING]
- 52cdfc0 core: API - review responsibilities between Handler and RouteMatch [BREAKING]
- e70b611 core: API - refactor move SignatureKey to security package [BREAKING]
- ca9569d core: API - refactor move HTTP and HttpStatus to their own package [BREAKING]
- e797cda core: API - review http status type on response [BREAKING]
- 3a02803 core: API - review how to access to request cookies [BREAKING]