Instead of a simple check, looking for an associated field error at or
above the field, this method now more focused on finding the reason for
a failure when the field has no value.
This allows performing a more thorough search including cases when the
field error is at, above, or even below (e.g. non-null nested field
that bubbled up), in the end falling back on request errors (e.g.
failed response without any field errors).
Also, rename ResponseField to GraphQlResponseField and move to a
top-level class.
See gh-10
Add a String path representation making it easy to filter errors by
path using String comparison, and refine nullability.
Take advantage of the String error paths to simplify internal filtering
of error fields.
See gh-10
This commit documents how to configure a custom className Extractor
strategy in the `ClassNameTypeResolver`. This also adds an example of a
`GraphQlSourceBuilderCustomizer` in Spring Boot.
Closes gh-334
This commit explains why Jackson annotations have no impact on the
serialization/deserialization process. Instead applications should
describe and coerce types using scalars.
Fixes gh-321
Important to mention the `GraphQlSourceBuilderCustomizer` which is
otherwise mentioned neither in the Boot starter nor the reference here.
It is the path to a number of customizations that are discussed in
`GraphQlSource` subsections.
See gh-233
CombinedWiringFactory makes use of multiple WiringFactory instances
possible, but RuntimeWiring.Builder does not use it by default.
This change enables use of multiple WiringFactory instances through
an extra callback on RuntimeWiringConfigurer that allows multiple
parties to add their own WiringFactory.
See gh-244
This commit adds support for validating handler method inputs after
binding from the data fetching environment and before invoking the
handler method.
This support is based on Bean Validation and is enabled only if the
application context contains a `Validator` bean.
Closes gh-110
This commit configures all `DataLoaderRegistrar` application components
with the `GraphQlService`. This allows applications to contribute
`DataLoader` instances without using the annotated-controller
programming model.
Closes gh-189
This commit upgrades the experimental starter to Spring Boot 2.6.0-RC1
and aligns all dependency versions to the Spring Boot dependency
management in 2.6.
This commit also removes temporary workarounds in the testing support or
in declared dependencies now that we've moved to 2.6.
While we're now using Spring Boot 2.6 as a reference version for this
project, the baseline didn't change and this commit documents the
requirements for this project; the Spring Data version, for our QueryDSL
support, is a specific example of that.
Fixes gh-181
Batch loading functions registered via BatchLoaderRegistry now have
Reactor Context propagated to them and also have access to the
GraphQLContext from the ExecutionInput.
Closes gh-173
After the introduction of the `@GraphQlTest` annotation, this commit
adds further refinements to the testing infrastructure.
Now, `@GraphQlTest` is completely independent of any web framework and
contributes a `GraphQlTester` component.
`@SpringBootTest` integration tests with mock servers only require an
`@AutoConfigureWebGraphQlTest` to get a `WebGraphQlTester` component.
Closes gh-75