Commit Graph

30 Commits

Author SHA1 Message Date
Rossen Stoyanchev
8dc56ceaa5 Refine input exception handling and validation 2020-09-17 18:52:35 +01:00
Rossen Stoyanchev
42464b6748 Minor refactoring and polishing
- Remove (unused) GraphQLResponseBody

- Collapse servlet and reactive packages and rename handlers to
  WebFluxGraphQLHandler and WebMvcGraphQLHandler.

- Minor refactoring and polishing in each handler also removing some
  protected methods that overlap in purpose.

- Rename GraphQLRequestBody to RequestInput and make it package private.
2020-09-16 21:10:30 +01:00
Brian Clozel
2693742b63 Add GraphQL web support
This commit removes the controller components and instead moves the web
support to specific auto-configurations.
This commit also adds tests for both web stacks.
2020-09-16 16:34:00 +02:00
Brian Clozel
9aff167527 Add basic support for core GraphQL auto-configuration 2020-09-16 16:22:42 +02:00
Brian Clozel
0d46a98f62 Create web stack-specific GraphQL handlers
Instead of trying to create a single handler for both reactive and
non-reactive implementations, this commit splits the implementations.
2020-09-16 16:16:13 +02:00
Brian Clozel
6040dce0c1 Update request/response GraphQL classes
This commit decouples the HTTP layer from the expected request and
response messages expected with GraphQL.
2020-09-16 16:14:15 +02:00
Brian Clozel
54ec20c510 Switch back interceptor to simple interface 2020-09-16 16:10:39 +02:00
Brian Clozel
1e61beb0a4 Remove auto-configurations from starter modules 2020-09-16 16:09:37 +02:00
Brian Clozel
39e22eb81a Move auto-configurations to web module
This commit adds the relevant dependencies to the web module so as to
move all auto-configurations to a single place. Starter modules will
only ship dependencies as a result.
2020-09-16 16:07:38 +02:00
Brian Clozel
3e2a601af0 Move auto-configuration classes to Spring Boot namespace 2020-09-15 14:10:35 +02:00
Brian Clozel
a44c836fc0 Merge modules
This commit merges the common, webmvc and webflux modules into a single
web module for supporting GraphQL with all Spring web frameworks.
We're working here with optional dependencies to build the support
for Spring MVC on one side and Spring WebFlux on the other.

Also, this commit updates the starter modules to adopt the official
naming convention. For now, starter modules will host both the
configuration infrastructure and the transitive dependencies to activate
support.
2020-09-15 14:10:35 +02:00
Brian Clozel
b39f12ed4e Refactor Gradle build
This commit refactors the Gradle build with the following:

* use of the dependency management plugin
* import the Spring Boot BOM for dependency management
* add support for publishing artifacts
2020-09-15 14:10:35 +02:00
Andreas Marek
5741e3f4bc refactoring 2020-09-15 03:32:48 +10:00
Andreas Marek
7bc8cea8ed add http headers for the response 2020-09-15 03:29:15 +10:00
Andreas Marek
a7cf5b6d55 pass params to interceptor 2020-09-15 03:14:26 +10:00
Andreas Marek
8238353f9a refactor to GraphQLHttpRequest and GraphQLHttpResponse and added params map 2020-09-15 03:09:27 +10:00
Andreas Marek
740a3f1f92 add non nullable package annotations
rename GraphQLResponseBody -> GraphQLResponse
2020-09-15 02:24:58 +10:00
Andreas Marek
59214d4c5b add default implementations for Interceptor 2020-09-15 02:15:37 +10:00
Andreas Marek
f2cf46989b Refactor webmvc to use the new Handler 2020-09-14 07:28:49 +10:00
Andreas Marek
a37aa740a9 introduce common GraphQLHandler which doesn't depend on either webflux or webmvc specifics.
Refactor webflux to use the new Handler
2020-09-14 07:13:21 +10:00
Andreas Marek
7edc2d9ce6 use configuration annotation 2020-08-25 06:34:33 +01:00
Andreas Marek
11d2ad74cf add webflux variant 2020-08-25 06:34:33 +01:00
Andreas Marek
ce3a83bc0e use assertJ 2020-08-25 06:34:33 +01:00
Andreas Marek
7829f109f8 upgrade to junit 5 2020-08-25 06:34:33 +01:00
Andreas Marek
5de1baa794 change module names 2020-08-25 06:34:33 +01:00
Andreas Marek
932093ac34 refactor to use router functions, upgrade spring and gradle 2020-08-25 06:34:33 +01:00
Andreas Marek
84806f6a6b basic spring mvc and spring mvc starter integration which exposes a GraphQL endpoint 2020-08-25 06:34:33 +01:00
Andreas Marek
7b549d7932 basic spring mvc and spring mvc starter integration which exposes a GraphQL endpoint 2020-08-25 06:34:33 +01:00
Rossen Stoyanchev
e8db755430 Add license 2020-07-23 09:40:14 +03:00
Rossen Stoyanchev
6b4aeb074e first commit 2020-07-22 08:18:31 +03:00