Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreI'm happy to announce that a Spring for GraphQL 1.2 release candidate is now available via https://repo.spring.io/milestone.
The M1 release provided abstractions and infrastructure for pagination and sorting, including support for input and output types on annotated controller methods that minimize what applications need to do to support paginated queries.
The current release candidate completes this by extending pagination support to our Querydsl and Query By Example DataFetcher
implementations, both of which now expose a scrollable
factory method.
In addition, the auto-registration for both Querydsl and Query by Example repositories has been extended to work for queries that return a Connection type.
The M1 release provided a very essential schema mappings inspection feature that checks whether all schema fields are covered by a DataFetcher
registration, or have a matching Java object property.
In the current release candidate, this feature has been extended further to recognize paginated queries that return a Connection type, and to properly nest within their EdgeNode
type on the schema type, as well as within the generic parameter of the Java type, in order to correctly compare the structures within.
The schema mappings inspection has also been updated to support schema interfaces and to report any types that were not inspected because of insufficient Java type information, e.g. schema union
types that would be declared as java.lang.Object
in a controller method return type.
If you haven't tried this feature yet, please do so and provide us with feedback.
For queries with a single argument that is a GraphQL input type, both Querydsl and Query by Example have been a little awkward to use, requiring an artificial wrapper type that has the single argument, whereas the actual data is nested in the structure of that argument's GraphQL input type.
In the current release candidate, such a wrapper type is no longer needed with Querydsl and Query by Example repositories, which can now bind to an object that reflects the GraphQL input type directly.
Spring for GraphQL argument binding already supports binding to a higher level target Object via constructor and property initialization, including Object structures with any level of nesting. However, sometimes property names may follow a different convention, and perhaps you don't own the objects and can't change them.
In current release candidate, we've added an option to allow falling back on direct field access which may help in such a situation.
Our next stop is the GA release on 17 May, followed by the fantastic Spring I/O conference where Brian and I will present Observing Spring for GraphQL In Action. If you're going to be at the conference, please come say hello. We'd love to speak with you!