GraphQl implementation using webflux
Last updated
Was this helpful?
Last updated
Was this helpful?
Implements a reactive GraphQL server using Spring WebFlux, enabling highly scalable endpoint queries.
Reactive Execution: Non-blocking data fetchers.
Scalable: Ideal for high-concurrency scenarios.
Performance: Handles thousands of concurrent requests with minimal overhead.
Memory Efficient: Reduces memory footprint through backpressure handling.
The spring-boot-starter-graphql is a starter dependency for Spring Boot applications that allows them to integrate with GraphQL APIs. It provides a set of tools and libraries that enable developers to easily build GraphQL-based applications and expose them through a GraphQL endpoint. The starter includes support for GraphQL queries, mutations, subscriptions, and schema definitions, as well as integration with Spring Boot's autoconfiguration and dependency injection features.
You can run TestApplication.java
from your IDE directly. You can also run the application using Maven as follows:
Swagger UI: http://localhost:8080/swagger-ui.html
Actuator Endpoint: http://localhost:8080/actuator
GraphIQL: http://localhost:8080/graphiql
GraphQL provides three main concepts:
Queries: Read data from the server
Mutations: Update data on the server
Subscriptions: Read data over a period of time (e.g., stock market updates, inflight recorder)
There are two types of annotations that can be used expose API
@SchemaMapping(typeName = "Query", field = "customers")
, Here typeName should be matching the schema declared in schema.graphqls and filed should match the definition
@QueryMapping
, Short hand for @SchemaMapping
where field if not specified will be obtained from methodname and it should be declared in schema.graphqls
Sample data
or
Fetching data based on name