🔴 ALERT
We recommend developers to wait for 4.7.0, when available, since it has important fixes for Input Arguments serialization.
The serialization of an input argument into a collection fails in this version.
What’s Changed
- Custom implementation of
convertValue
for input types (#549) @paulbakker. - DataFetchers can have an input argument annotated with
@CookieValue
to express that such value should be fetch from the cookie inside the web request. (#542) @paulbakker. - In your server you can now declare a GraphQL Directive via the
@DgsDirective
annotation. (#536) @hantsy - Metrics should skip instrumenting data fetchers annotated with
@DgsEnableDataFetcherInstrumentation(false)
(#577) @berngp - Support methods that have multiple
@DgsData
annotations. (#574) @berngp - Add the @connection directive automatically when pagination module is used. (#568) @srinivasankavitha
⚠️ WARNING
Due the changes on #549 there are implicit modification on how GraphQL ID are serialized to input arguments.
The serialization of a GraphQLID
input argument to a Javajava.util.Long
will not happen out of the box now.
In principal this is not correct since anID
should be treated as aString
, GraphQL defines it as follows... "the ID scalar type represents a unique identifier, often used to refetch an object or as the key for a cache. The ID type is serialized in the same way as a String; however, defining it as an ID signifies that it is not intended to be human‐readable." ref.
Performance Improvements
- Avoid calculating the stacktrace when calling ExecutionStrategyInstrumentationContext (#562 & #567) @berngp
- Call the ListableBeanFactory only once when fetching the MeterRegistry (#551) @berngp
Other
- chore: Add @JsonCreator to TypedGraphQLError (#556) @hantsy
- Added a test for working with a custom scalar for an input variable in the client (#572) @paulbakker
- Added test for input arguments without annotation. (#564) @paulbakker
- Bump spectator-api from 0.133.+ to 0.134.0 (#563) @dependabot