95 lines
2.8 KiB
Markdown
95 lines
2.8 KiB
Markdown
|
|
## [0.9.0] 2017-12-03
|
|
|
|
## Changes
|
|
|
|
This is the first release in a long time.
|
|
Quite a few changes have accumulated since `0.8.1`, including multiple breaking
|
|
changes.
|
|
|
|
### Custom derive & macros
|
|
|
|
Juniper has gained custom derive implementations for input objects, objects and
|
|
enums.
|
|
|
|
* `#[derive(GraphQLInputObject)]`
|
|
* `#[derive(GraphQLEnum)]`
|
|
* `#[derive(GraphQLObject)]`
|
|
|
|
The `graphql_enum!` and `graphql_input_object!` macros did not provide any more
|
|
benefits, so they have been removed!
|
|
All functionality is now covered by custom derive.
|
|
Check the [docs](https://graphql-rust.github.io) to find out more.
|
|
|
|
### Web framework integrations - Iron & Rocket
|
|
|
|
The iron and rocket integrations were removed from the main crate, and are now
|
|
available via the [juniper_iron](https://crates.io/crates/juniper_iron) and
|
|
[juniper_rocket](https://crates.io/crates/juniper_rocket) crates.
|
|
|
|
### FieldError rewrite (custom data)
|
|
|
|
The `FieldError` type now supports custom data with the `Value` type from
|
|
serde_json. Use this to populate the `data` field in returned errors.
|
|
|
|
This also means that try! and `?` now work in resolvers, which is quite nice.
|
|
|
|
Also, the `ResultExt` extension and the `jtry!` macro were removed, since they
|
|
are redundant now!
|
|
|
|
### Dynamic Schemas
|
|
|
|
Juniper has gained support for dynamic schemas, thanks to @srijs.
|
|
|
|
That also means the type of `RootNode` has changed to include a lifetime.
|
|
|
|
The repository was restructured to a multi crate workspace to enable several new
|
|
features like custom_derive and an extracted parser.
|
|
|
|
#[#66](https://github.com/graphql-rust/juniper/pull/66)
|
|
|
|
### Data Type Integrations
|
|
|
|
Integrations with multiple popular crates was added to make working with them
|
|
easier.
|
|
|
|
* uuid
|
|
* url
|
|
* chrono
|
|
|
|
### Field Order
|
|
|
|
To better comply with the specification, order of requested fields is
|
|
now preserved.
|
|
|
|
[#82](https://github.com/graphql-rust/juniper/issues/82
|
|
|
|
### From/ToInputValue
|
|
|
|
The `::from` and `::to` methods in `From/ToInputValue` were renamed to
|
|
`from/to_input_value()` to not conflict with other methods.
|
|
|
|
[#90](https://github.com/graphql-rust/juniper/pull/90)
|
|
|
|
### Other changes
|
|
|
|
* Several small performance improvements
|
|
* Use [fnv](https://github.com/servo/rust-fnv) hash map for better performance
|
|
|
|
|
|
## Contributors
|
|
|
|
A big shoutout to the many contributors for this version, sorted alphabetically.
|
|
|
|
* Cameron Eldridge <cameldridge+git@gmail.com>
|
|
* Christian Legnitto <christian@legnitto.com>
|
|
* Jacob Haslehurst <jacob@haslehurst.net>
|
|
* Jane Keibler <wanderingelf14@gmail.com>
|
|
* Magnus Hallin <mhallin@fastmail.com>
|
|
* rushmorem <rushmore@webenchanter.com>
|
|
* Rushmore Mushambi <rushmore@webenchanter.com>
|
|
* Sagie Gur-Ari <sagiegurari@gmail.com>
|
|
* Sam Rijs <srijs@airpost.net>
|
|
* Stanko Krtalić <stanko.krtalic@gmail.com>
|
|
* theduke <chris@theduke.at>
|
|
* thomas-jeepe <penguinSoccer@outlook.com>
|