Commit Graph

488 Commits

Author SHA1 Message Date
rstoyanchev
53fb1d4dc0 Update and expand GraphQlTester tests
See gh-317
2022-03-07 10:39:59 +00:00
rstoyanchev
29b1aa2cc7 Introduce transport specific GraphQlTester extensions
See gh-317
2022-03-07 10:39:59 +00:00
rstoyanchev
1ae7eb742f Replace RequestStrategy with GraphQlTransport hierarchy
See gh-317
2022-03-07 10:39:59 +00:00
rstoyanchev
9318eade52 Update and expand GraphQlClient tests
See gh-10
2022-03-07 10:39:59 +00:00
rstoyanchev
d7f5e44ad6 Simplify GraphQlClient hierarchy and implementations
Add WebGraphQlClient as a common representation for a Web GraphQlClient
extension and its builders that has to be started through the HTTP or
WebSocket implementations.

Remove the common base builder for HTTP and WebSocket, with HTTP simply
delegating to the underlying WebClient builder For WebSocket, builder
state is exposed from the transport to simplify the mutation logic.

DefaultGraphQlClientBuilder is now abstract, leaving subclasses to
implement the build method.

See gh-10
2022-03-07 10:39:59 +00:00
rstoyanchev
347f51941a Make transports private and drop builders
Now that transport specific GraphQlClient extensions provide a unified
builder for GraphQlClient and transport configuration, the transports
become a private implementation detail.

See gh-10
2022-03-07 10:39:59 +00:00
rstoyanchev
5a73e05040 Add transport specific GraphQlClient extensions
Add HttpGraphQlClient and WebSocketGraphQlClient extensions along with
a builder hierarchy that combines GraphQlClient and transport specific
configuration.

See gh-10
2022-03-07 10:39:59 +00:00
rstoyanchev
328d5c2b3e DocumentSource is async and supports caching
See gh-10
2022-03-07 10:39:59 +00:00
rstoyanchev
087202d9cb Simplify creation of RequestInput in tests
Introduce a TestRequestInput subclass to make the creation of
RequestInput in tests convenient.

See gh-310
2022-03-07 10:39:59 +00:00
rstoyanchev
b49c63f376 Extract GraphQlRequest and rename "query" to "document"
Extract GraphQlRequest, as a parent of RequestInput, that holds the
actual request inputs sent from the client side. RequestInput then
adds server-side transport details and ExecutionInput support.

Also replace "query" with "document" in GraphQlRequest and in
GraphQlClient.

Closes gh-310
2022-03-07 10:39:59 +00:00
dugenkui03
bc7500f33a Provide location information for missing/invalid schema resources
This commit ensures that the `Resource` description is provided when
a schema resource is missing, cannot be read, or is invalid.
This is useful when the application holds multiple schema files and
an error is thrown because of a particular file.

Close gh-307
2022-03-03 14:43:44 +01:00
Brian Clozel
c10aed82a3 Configure Gradle Enterprise 2022-03-03 14:37:56 +01:00
rstoyanchev
bdaaa0f2dd Add missing Javadoc 2022-02-24 22:26:17 +00:00
rstoyanchev
736c33aa4e Add GraphQlClient support for WebSocket
See gh-10
2022-02-24 22:15:44 +00:00
rstoyanchev
371c601c9d Add GraphQlClient and GraphQlTransport for HTTP
See gh-10
2022-02-24 22:15:20 +00:00
rstoyanchev
2729ea685a Add TestWebSocketClient and TestWebSocketConnection
Provides support for WebSocket tests without a running server.

See gh-10
2022-02-24 22:13:54 +00:00
rstoyanchev
6c0bbdd132 Extract GraphQlWebSocketMessage and WebSocketCodecDelegate
Allows some reuse between WebFlux and WebMVC and between client and server.

See gh-10
2022-02-24 22:12:24 +00:00
rstoyanchev
afb0b64d3a Add section on directives in reference docs
Closes gh-262
2022-02-17 15:19:01 +00:00
rstoyanchev
194126dc6b Polishing contribution
Closes gh-233
2022-02-17 14:45:09 +00:00
rstoyanchev
1939021ec3 Summarize Boot starter features for GraphQlSource.Builder
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
2022-02-17 14:44:57 +00:00
Jordie
a9cd0a9958 Update docs for PreparsedDocumentSupport
See gh-233
2022-02-17 14:44:57 +00:00
rstoyanchev
1f9afa9be5 Shortcut annotations target method level only again
Closes gh-290
2022-02-17 12:32:18 +00:00
rstoyanchev
937c265091 Support List arguments in QuerydslDataFetcher
Closes gh-281
2022-02-17 12:24:42 +00:00
rstoyanchev
4c6ec7df11 Invoke validation on resolved argument values
Closes gh-289
2022-02-16 21:53:18 +00:00
rstoyanchev
16f4390d22 Ignore duplicate schema resource registrations
Closes gh-230
2022-02-10 12:50:31 +00:00
rstoyanchev
30f86d74f2 Move classes from security to execution package
Security classes should be integrated in their respective areas by
functionality rather than exist as a separate, external layer.
2022-02-10 12:37:13 +00:00
rstoyanchev
6df6ab78c8 Support for @Arguments method parameter
Closes gh-258
2022-02-10 12:19:31 +00:00
rstoyanchev
32930f7e88 Add logo to README.md 2022-02-09 10:51:32 +00:00
rstoyanchev
b17d4e2425 Add @AuthenticationPrincipal to reference
See gh-272
2022-02-08 20:58:55 +00:00
rstoyanchev
0842deb593 Polishing
See gh-272
2022-02-08 20:50:55 +00:00
Rob Winch
db1570909f Add AuthenticationPrincipalArgumentResolver
Closes gh-272
2022-02-08 20:50:55 +00:00
rstoyanchev
5bc9d9ab24 Fix arguments to Assert.isInstanceOf
Closes gh-282
2022-02-08 17:04:58 +00:00
rstoyanchev
2095e1795f Refine valueIsEmpty check 2022-02-08 17:02:30 +00:00
rstoyanchev
0b449d89e1 Callbacks for ConversionService customization
Closes gh-271
2022-02-03 10:16:57 +00:00
rstoyanchev
d2cad053ac Polishing 2022-02-03 10:16:57 +00:00
Brian Clozel
a89ae5034f Upgrade JDK versions in CI image 2022-02-03 10:26:22 +01:00
Brian Clozel
e2d3b61b8d Upgrade Ubuntu version in CI image 2022-02-03 10:24:14 +01:00
rstoyanchev
cc3c1d163e Improvements in data section of reference docs
See gh-248
2022-01-21 17:32:28 +00:00
rstoyanchev
4a031ba519 Create dedicated section on projections
Closes gh-264
2022-01-21 17:32:28 +00:00
Mark Paluch
f34da2589b Describe aggregates and projections
See gh-264
2022-01-21 16:53:42 +00:00
rstoyanchev
50b794cae0 Minor refactoring in RequestInput 2022-01-21 13:16:44 +00:00
Brian Clozel
76940c279e Configure Javadoc links to external sources 2022-01-19 15:48:06 +01:00
Brian Clozel
c86ea72b5e Temporarily add SNAPSHOT plugin repository
This is required as otherwise they're deactivated during the staging of
a release. We should reconsider our dependency on Spring Boot SNAPSHOTs
in our samples.
2022-01-19 15:17:44 +01:00
Brian Clozel
641b0f0506 Align Kotlin dependency on Spring Framework 5.3.x
Prior to this commit, spring-graphql would depend on Kotlin 1.6, which
is not in line with Spring Framework 5.3.x requirements. This commit
realigns our dependency management on Kotlin 1.5.x.

Also, this commit configures the build to not publish a kotlin-stdlib
runtime dependency in our POM.

Closes gh-265
2022-01-19 14:54:36 +01:00
Brian Clozel
410e7e60ae Revisit Gradle repositories configuration 2022-01-19 14:22:04 +01:00
rstoyanchev
1bbaf9e524 Update links to Spring Boot starter section
Closes gh-254
2022-01-18 14:38:08 +00:00
rstoyanchev
0343ad9605 Update docs with section on Schema Creation
Closes gh-226
2022-01-18 12:30:30 +00:00
rstoyanchev
bde86d3dd1 Update docs on batch loading registration and tests
Closes gh-246
2022-01-18 11:24:01 +00:00
rstoyanchev
bc70922ea2 Polishing contribution
Closes gh-203
2022-01-17 21:32:58 +00:00
Jordie
175673d291 Convert websocket error message payload to array
As expected in graphql-ws protocol

See gh-200
2022-01-17 21:25:40 +00:00