GraphQL is both a language and a tool that can simplify your API and save some development hours to your project because you don’t need to create different endpoints for single data structure. With Quarkus, it can be done really easily with vertx extension.
Let’s start with a simple example. You have a simple service that returns project teams and users for them. You’ll need:
- Create endpoint to get all teams + create an endpoint to get a single team
- Create an endpoint that will give you all users of a team.
- Alternatively, you can use ORM to return teams with users in them as a one large result
- An endpoint that will only return teams with users, but users only have a name.
I included #4 because you might have some really large object(imagine that user has 200 fields, and you return thousands of them. And your clients only need their names to display in a search result.
If you’re looking for Microprofile GraphQL(the one with annotation support) please follow to official Quarkus guide.