dgs-examples-webflux
dgs-examples-webflux copied to clipboard
Java DGS Framework example
This repository is an example application for the DGS Framework. The example is a standalone GraphQL server in Java.
It shows the following features:
- Datafetchers
- Mutations
- DataLoader to prevent the N+1 problem
- Query testing
- Using a generated Query API
- Using the Gradle codegen plugin
- A custom instrumentation implementation
- Subscriptions
- Testing a subscription
- Registering an optional scalar from graphql-java
Other examples
There are other examples of using the DGS framework as well:
- WebMVC implementation of this example
- Kotlin implementation of this example
- Federation examples (with Apollo Gateway)
Shows and Reviews
This example is built around two main
types: Show
and Review.
A Show
represents a series or movie you would find on Netflix. For ease of running the demo, the list of shows is
hardcoded
in ShowsServiceImpl
. A show can have Reviews
. Again, for ease of running the demo, a list of reviews is generated during startup for each
show
in DefaultReviewsService
.
Reviews can also be added by users of the API using a mutation, and a GraphQL Subscription is available to watch for added reviews.
Starting the example
The example requires Java 11. Run the application in an IDE using its main class or using Gradle:
./gradlew bootRun
Interact with the application using GraphiQL on http://localhost:8080/graphiql.