SlideShare a Scribd company logo
Andreas Marek
Rossen Stoyanchev
Spring GraphQL
Copyright © 2021 VMware, Inc. or its affiliates.
Who are we
Andreas Marek
● GraphQL Java creator and maintainer
● GraphQL contributor and Technical Steering
Committee member
● Spring GraphQL co-creator
● Working at Atlassian, Sydney
● @andimarek on twitter and github
Rossen Stoyanchev
● Spring Framework committer - Spring MVC,
WebFlux, web messaging, RSocket
● RSocket Java committer
● Spring GraphQL co-creator
● Working at VMware, Cambridge, UK
● @rstoya05 on twitter
Cover w/ Image
Agenda
● What is GraphQL?
● GraphQL Java
● Spring GraphQL
What is GraphQL?
What is GraphQL?
GraphQL is a technology for client server data exchange
● A clients wants to access data on a server (across a network)
● Originally developed by Facebook for their iOS app in 2012
● Open sourced in 2015, governed by a non profit foundation today
● Two pillars: statically typed API + query language
● Sweet spots are Single Page Apps and native clients
● An alternative to REST(ish) APIs
● My favourite argument for GraphQL: the developer experience
GraphiQL demo
GraphQL Java
Data Fetching Layer
HTTP
Web iOS Android
Cache Microservices DB
The two pillars of GraphQL
GraphQL Schema
● Describes your API
● Defined on the server
● Based on a simple static types system
● Schema Definition Language (SDL) is used to
describe a Schema
GraphQL Query Language
● Custom query language
● Clients define the query based on their needs
● Every field needs to be requested explicitly
GraphQL Schema
Example
Spring GraphQL
GraphQL Query
Example
The GraphQL ecosystem
GraphQL ecosystem is based on a specification
● The GraphQL specification defines how GraphQL queries should be executed
● It defines the GraphQL schema + query language
● First there was the spec + reference implementation in JS (GraphQL.JS)
● Next it was implemented in every major language
GraphQL Java
GraphQL Java
GraphQL Java is the GraphQL implementation for Java
● It is an implementation for the server side GraphQL execution (also called execution
engine)
● Started mid 2015
● Pure engine: no HTTP or IO. No high level abstracts.
● Used word wide and empowers a whole ecosystem of libraries build on top
● https://graphql-java.com/
How to think in GraphQL Java
Schema first and DataFetchers
● Start designing by putting the Schema first
● Use case and client oriented
● Define the schema in SDL (textual format, preferred) or programmatically
● Schema is made out of types with fields
● Fundamental rule: every field has a DataFetcher associated with
● DataFetcher fetches the data for one field
● If you don’t specify a DataFetcher a default DataFetcher is provided
Spring GraphQL
PropertyDataFetcher
PropertyDataFetcher
DataFetcher
Calling the employee service
DataFetcher
Calling the department service
DataFetcher
Calling the employee service
1 Query.allEmployees
2a Employee.id
2b Employee.name
2c Employee.department
3a Department.name
3b Department.employees
4 Employee.id
Request Execution: DataFetchers sequence
From GraphQL Java to Spring GraphQL
Spring GraphQL is the missing gap in the developer story
● GraphQL Java is “limited” on purpose
● GraphQL Java lets you do everything, but not everything is as simple and convenient
as possible
● The Spring and GraphQL Java teams came together to fix that
● Spring GraphQL is focused on comprehensive and first level support
● It aims to be a fundamental building block build directly on GraphQL Java
Spring GraphQL
Transport ?
GraphQL Java
Engine
Data Fetchers
Database Message
Broker
Microservice
GraphQL Java
GraphQL Java
HTTP,
WebSocket
GraphQL Java
Engine
Data Fetchers
Database Message
Broker
Microservice
Spring MVC
Spring WebFlux
HTTP,
WebSocket
GraphQL Java
Engine
Data Fetchers
Database Message
Broker
Microservice
Initialization
Context propagation
Security
Exception resolution
Spring MVC
Spring WebFlux
GraphQL Java
Engine
Data Fetchers
Database Message
Broker
Microservice
@Controller
Querydsl
HTTP,
WebSocket
Spring MVC
Spring WebFlux
Initialization
Context propagation
Security
Exception resolution
GraphQL Java
Engine
Data Fetchers
Database Message
Broker
Microservice
HTTP,
WebSocket
Testing
@Controller
Querydsl repositories
Spring MVC
Spring WebFlux
Initialization
Context propagation
Security
Exception resolution
GraphQL Java
Engine
Data Fetchers
Database Message
Broker
Microservice
Boot Starter
Testing
@Controller
Querydsl repositories
Spring MVC
Spring WebFlux
Initialization
Context propagation
Security
Exception resolution
HTTP,
WebSocket
Customize ExecutionInput
Inspect ExecutionResult
Web Transports
WebMvc + WebFlux
Functional HTTP
Handlers
WebSocket
Handlers
WebInterceptor WebInterceptor GraphQlService graphql.GraphQL
Functional HTTP
Handlers
WebSocket
Handlers
WebInterceptor WebInterceptor GraphQlService graphql.GraphQL
Reactor API
Async Execution
Mono from CompletableFuture
Web Transports
WebMvc + WebFlux
Spring GraphQL
GraphQL Java
Engine
Data
Fetchers
Service Service Service
HTTP, WebSocket
Handlers
Spring Security
Filter Chain
@PreAuthorize
@Secured
Security
Security and Context Propagation
Spring MVC
ThreadLocal context propagation from
Servlet container thread
Need to register ThreadLocalAccessor
Built-in accessor for Spring Security context
Spring WebFlux
Reactor context propagation from web layer
Spring Security context propagated
GraphQL Java
Engine
Data
Fetchers
Service Service Service
HTTP, WebSocket
Handlers
Spring Security
Filter Chain
@PreAuthorize
@Secured
Security
Context Propagation
Data Layer
The DataFetcher Contract
DataFetcher<T>
DataFetcher<T>
DataFetcher<T>
DataFetcher Wiring to Schema Fields
Spring GraphQL
Spring GraphQL
Spring GraphQL
type: Query, field: allEmployees
type = Department, field = employees
type = Mutation, field = updateSalary
Exception Handling
GraphQL Java allows registering a single DataFetcherExceptionHandler
Spring GraphQL enables a DataFetcherExceptionResolver chain
DataFetcherExceptionResolver
ExceptionResolversExceptionHandler
DataFetcherExceptionResolver
DataFetcherExceptionResolver
Spring GraphQL
Querydsl
Typesafe way to express queries in Java that works across multiple data stores
Spring Data has support for Querydsl
Spring GraphQL and Querydsl
QuerydslDataFetcher
Adapts a Spring Data repository to DataFetcher
Translates GraphQL query parameters to Querydsl Predicate
Adapt the Repository to
a DataFetcher
Match based on query return type for
top-level queries
Automatic Registration
More on Querydsl
Customize how GraphQL request parameters are mapped to Querydsl Predicate
Transform the resulting Objects via interface and DTO projections
GraphQlTester
Workflow for testing GraphQL
Automatic checks to verify no errors in response
Use JsonPath to specify data to inspect
Data decoding
WebGraphQlTester
Extension for GraphQL tests over web transports
Specify HTTP specific inputs
Uses WebTestClient
Spring GraphQL
Spring Boot Starter
Dependencies
Autoconfig
Properties
Metrics
GraphiQL UI and Schema pages
Spring Boot Starter
Currently In Spring GraphQL repository, group id ‘org.springframework.experimental’
Due to move to Spring Boot, after version 2.6 is released
Collaboration with Netflix DGS
Optional, alternative starter to run DGS on the spring-graphql core
DGS programming model + spring-graphql WebMvc / WebFlux foundation
spring-graphql starter to become the main starter eventually
Netflix DGS Features
Annotation based registration of data fetchers, data loaders, scalars, etc.
Code generation for GraphQL Schema -> Java/Kotlin
GraphQL client for Java/Kotlin
Federation
Roadmap Timeline
M3: mid-October
Starter integrated into Spring Boot, after 2.6 release
RC phase: early 2022
GA: May 2022 with Spring Boot 2.7
Roadmap Features
Evolve controller programming model, #63 (batch loaders), #110 (bean validation)
Automated registration of Spring Data repositories, #99
Query by Example (QBE) support as an alternative to Querydsl, #115
GraphQL client, #10
More...
Roadmap Features
Your feedback
Thank you
Andreas Marek @andimarek
Rossen Stoyanchev @rstoya05
© 2021 Spring. A VMware-backed project.
Ad

More Related Content

What's hot (20)

Getting Started with Spring for GraphQL
Getting Started with Spring for GraphQLGetting Started with Spring for GraphQL
Getting Started with Spring for GraphQL
VMware Tanzu
 
REST vs GraphQL
REST vs GraphQLREST vs GraphQL
REST vs GraphQL
Squareboat
 
An intro to GraphQL
An intro to GraphQLAn intro to GraphQL
An intro to GraphQL
valuebound
 
GraphQL as an alternative approach to REST (as presented at Java2Days/CodeMon...
GraphQL as an alternative approach to REST (as presented at Java2Days/CodeMon...GraphQL as an alternative approach to REST (as presented at Java2Days/CodeMon...
GraphQL as an alternative approach to REST (as presented at Java2Days/CodeMon...
luisw19
 
GraphQL Introduction with Spring Boot
GraphQL Introduction with Spring BootGraphQL Introduction with Spring Boot
GraphQL Introduction with Spring Boot
vipin kumar
 
GraphQL
GraphQLGraphQL
GraphQL
Joel Corrêa
 
GraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer toolsGraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer tools
Sashko Stubailo
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
Rodrigo Prates
 
Intro to GraphQL
 Intro to GraphQL Intro to GraphQL
Intro to GraphQL
Rakuten Group, Inc.
 
Introduction to graphQL
Introduction to graphQLIntroduction to graphQL
Introduction to graphQL
Muhilvarnan V
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
Bhargav Anadkat
 
GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL Introduction
Serge Huber
 
React & GraphQL
React & GraphQLReact & GraphQL
React & GraphQL
Nikolas Burk
 
GraphQL Fundamentals
GraphQL FundamentalsGraphQL Fundamentals
GraphQL Fundamentals
Virbhadra Ankalkote
 
Introduction to GraphQL Presentation.pptx
Introduction to GraphQL Presentation.pptxIntroduction to GraphQL Presentation.pptx
Introduction to GraphQL Presentation.pptx
Knoldus Inc.
 
Reasons to use React Query
Reasons to use React QueryReasons to use React Query
Reasons to use React Query
javaria javaid
 
Better APIs with GraphQL
Better APIs with GraphQL Better APIs with GraphQL
Better APIs with GraphQL
Josh Price
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
Sangeeta Ashrit
 
Quarkus k8s
Quarkus   k8sQuarkus   k8s
Quarkus k8s
Georgios Andrianakis
 
How to GraphQL
How to GraphQLHow to GraphQL
How to GraphQL
Tomasz Bak
 
Getting Started with Spring for GraphQL
Getting Started with Spring for GraphQLGetting Started with Spring for GraphQL
Getting Started with Spring for GraphQL
VMware Tanzu
 
REST vs GraphQL
REST vs GraphQLREST vs GraphQL
REST vs GraphQL
Squareboat
 
An intro to GraphQL
An intro to GraphQLAn intro to GraphQL
An intro to GraphQL
valuebound
 
GraphQL as an alternative approach to REST (as presented at Java2Days/CodeMon...
GraphQL as an alternative approach to REST (as presented at Java2Days/CodeMon...GraphQL as an alternative approach to REST (as presented at Java2Days/CodeMon...
GraphQL as an alternative approach to REST (as presented at Java2Days/CodeMon...
luisw19
 
GraphQL Introduction with Spring Boot
GraphQL Introduction with Spring BootGraphQL Introduction with Spring Boot
GraphQL Introduction with Spring Boot
vipin kumar
 
GraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer toolsGraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer tools
Sashko Stubailo
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
Rodrigo Prates
 
Introduction to graphQL
Introduction to graphQLIntroduction to graphQL
Introduction to graphQL
Muhilvarnan V
 
GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL Introduction
Serge Huber
 
Introduction to GraphQL Presentation.pptx
Introduction to GraphQL Presentation.pptxIntroduction to GraphQL Presentation.pptx
Introduction to GraphQL Presentation.pptx
Knoldus Inc.
 
Reasons to use React Query
Reasons to use React QueryReasons to use React Query
Reasons to use React Query
javaria javaid
 
Better APIs with GraphQL
Better APIs with GraphQL Better APIs with GraphQL
Better APIs with GraphQL
Josh Price
 
How to GraphQL
How to GraphQLHow to GraphQL
How to GraphQL
Tomasz Bak
 

Similar to Spring GraphQL (20)

GraphQL-ify your APIs - Devoxx UK 2021
 GraphQL-ify your APIs - Devoxx UK 2021 GraphQL-ify your APIs - Devoxx UK 2021
GraphQL-ify your APIs - Devoxx UK 2021
Soham Dasgupta
 
GraphQL-ify your APIs
GraphQL-ify your APIsGraphQL-ify your APIs
GraphQL-ify your APIs
Soham Dasgupta
 
Boost your API with GraphQL
Boost your API with GraphQLBoost your API with GraphQL
Boost your API with GraphQL
Jean-Francois James
 
GraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits togetherGraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits together
Sashko Stubailo
 
GraphQL_devoxx_2023.pptx
GraphQL_devoxx_2023.pptxGraphQL_devoxx_2023.pptx
GraphQL_devoxx_2023.pptx
Soham Dasgupta
 
Create GraphQL server with apolloJS
Create GraphQL server with apolloJSCreate GraphQL server with apolloJS
Create GraphQL server with apolloJS
Jonathan Jalouzot
 
GraphQL-ify your APIs
GraphQL-ify your APIsGraphQL-ify your APIs
GraphQL-ify your APIs
Soham Dasgupta
 
Boost your APIs with GraphQL 1.0
Boost your APIs with GraphQL 1.0Boost your APIs with GraphQL 1.0
Boost your APIs with GraphQL 1.0
Otávio Santana
 
Boost your APIs with GraphQL
Boost your APIs with GraphQLBoost your APIs with GraphQL
Boost your APIs with GraphQL
Jean-Francois James
 
GraphQL-ify your API - JFall 2022
GraphQL-ify your API - JFall 2022GraphQL-ify your API - JFall 2022
GraphQL-ify your API - JFall 2022
Soham Dasgupta
 
Kotlin REST & GraphQL API
Kotlin REST & GraphQL APIKotlin REST & GraphQL API
Kotlin REST & GraphQL API
Sean O'Brien
 
How easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performanceHow easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performance
Red Hat
 
GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018
Sashko Stubailo
 
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything togetherSashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
React Conf Brasil
 
The Apollo and GraphQL Stack
The Apollo and GraphQL StackThe Apollo and GraphQL Stack
The Apollo and GraphQL Stack
Sashko Stubailo
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
VMware Tanzu
 
Graph ql subscriptions on the jvm
Graph ql subscriptions on the jvmGraph ql subscriptions on the jvm
Graph ql subscriptions on the jvm
Gerard Klijs
 
Dubai Dreamin '24 - Exploring the Power of Salesforce GraphQL
Dubai Dreamin '24 - Exploring the Power of Salesforce GraphQLDubai Dreamin '24 - Exploring the Power of Salesforce GraphQL
Dubai Dreamin '24 - Exploring the Power of Salesforce GraphQL
Tarandeep Singh
 
wepik-enhancing-web-development-with-nodejs-graphql-a-practical-guide-2024041...
wepik-enhancing-web-development-with-nodejs-graphql-a-practical-guide-2024041...wepik-enhancing-web-development-with-nodejs-graphql-a-practical-guide-2024041...
wepik-enhancing-web-development-with-nodejs-graphql-a-practical-guide-2024041...
AllstuffRj
 
Confoo - Javascript Server Side : How to start
Confoo - Javascript Server Side : How to startConfoo - Javascript Server Side : How to start
Confoo - Javascript Server Side : How to start
Quentin Adam
 
GraphQL-ify your APIs - Devoxx UK 2021
 GraphQL-ify your APIs - Devoxx UK 2021 GraphQL-ify your APIs - Devoxx UK 2021
GraphQL-ify your APIs - Devoxx UK 2021
Soham Dasgupta
 
GraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits togetherGraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits together
Sashko Stubailo
 
GraphQL_devoxx_2023.pptx
GraphQL_devoxx_2023.pptxGraphQL_devoxx_2023.pptx
GraphQL_devoxx_2023.pptx
Soham Dasgupta
 
Create GraphQL server with apolloJS
Create GraphQL server with apolloJSCreate GraphQL server with apolloJS
Create GraphQL server with apolloJS
Jonathan Jalouzot
 
Boost your APIs with GraphQL 1.0
Boost your APIs with GraphQL 1.0Boost your APIs with GraphQL 1.0
Boost your APIs with GraphQL 1.0
Otávio Santana
 
GraphQL-ify your API - JFall 2022
GraphQL-ify your API - JFall 2022GraphQL-ify your API - JFall 2022
GraphQL-ify your API - JFall 2022
Soham Dasgupta
 
Kotlin REST & GraphQL API
Kotlin REST & GraphQL APIKotlin REST & GraphQL API
Kotlin REST & GraphQL API
Sean O'Brien
 
How easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performanceHow easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performance
Red Hat
 
GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018
Sashko Stubailo
 
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything togetherSashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
React Conf Brasil
 
The Apollo and GraphQL Stack
The Apollo and GraphQL StackThe Apollo and GraphQL Stack
The Apollo and GraphQL Stack
Sashko Stubailo
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
VMware Tanzu
 
Graph ql subscriptions on the jvm
Graph ql subscriptions on the jvmGraph ql subscriptions on the jvm
Graph ql subscriptions on the jvm
Gerard Klijs
 
Dubai Dreamin '24 - Exploring the Power of Salesforce GraphQL
Dubai Dreamin '24 - Exploring the Power of Salesforce GraphQLDubai Dreamin '24 - Exploring the Power of Salesforce GraphQL
Dubai Dreamin '24 - Exploring the Power of Salesforce GraphQL
Tarandeep Singh
 
wepik-enhancing-web-development-with-nodejs-graphql-a-practical-guide-2024041...
wepik-enhancing-web-development-with-nodejs-graphql-a-practical-guide-2024041...wepik-enhancing-web-development-with-nodejs-graphql-a-practical-guide-2024041...
wepik-enhancing-web-development-with-nodejs-graphql-a-practical-guide-2024041...
AllstuffRj
 
Confoo - Javascript Server Side : How to start
Confoo - Javascript Server Side : How to startConfoo - Javascript Server Side : How to start
Confoo - Javascript Server Side : How to start
Quentin Adam
 
Ad

More from VMware Tanzu (20)

Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14
VMware Tanzu
 
What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
VMware Tanzu
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
VMware Tanzu
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
VMware Tanzu
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
VMware Tanzu
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
VMware Tanzu
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
VMware Tanzu
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
VMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
VMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
VMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
VMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
VMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
VMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
VMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
VMware Tanzu
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
VMware Tanzu
 
Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14
VMware Tanzu
 
What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
VMware Tanzu
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
VMware Tanzu
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
VMware Tanzu
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
VMware Tanzu
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
VMware Tanzu
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
VMware Tanzu
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
VMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
VMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
VMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
VMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
VMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
VMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
VMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
VMware Tanzu
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
VMware Tanzu
 
Ad

Recently uploaded (20)

WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 

Spring GraphQL

  • 1. Andreas Marek Rossen Stoyanchev Spring GraphQL Copyright © 2021 VMware, Inc. or its affiliates.
  • 2. Who are we Andreas Marek ● GraphQL Java creator and maintainer ● GraphQL contributor and Technical Steering Committee member ● Spring GraphQL co-creator ● Working at Atlassian, Sydney ● @andimarek on twitter and github Rossen Stoyanchev ● Spring Framework committer - Spring MVC, WebFlux, web messaging, RSocket ● RSocket Java committer ● Spring GraphQL co-creator ● Working at VMware, Cambridge, UK ● @rstoya05 on twitter
  • 3. Cover w/ Image Agenda ● What is GraphQL? ● GraphQL Java ● Spring GraphQL
  • 5. What is GraphQL? GraphQL is a technology for client server data exchange ● A clients wants to access data on a server (across a network) ● Originally developed by Facebook for their iOS app in 2012 ● Open sourced in 2015, governed by a non profit foundation today ● Two pillars: statically typed API + query language ● Sweet spots are Single Page Apps and native clients ● An alternative to REST(ish) APIs ● My favourite argument for GraphQL: the developer experience
  • 7. GraphQL Java Data Fetching Layer HTTP Web iOS Android Cache Microservices DB
  • 8. The two pillars of GraphQL GraphQL Schema ● Describes your API ● Defined on the server ● Based on a simple static types system ● Schema Definition Language (SDL) is used to describe a Schema GraphQL Query Language ● Custom query language ● Clients define the query based on their needs ● Every field needs to be requested explicitly
  • 12. The GraphQL ecosystem GraphQL ecosystem is based on a specification ● The GraphQL specification defines how GraphQL queries should be executed ● It defines the GraphQL schema + query language ● First there was the spec + reference implementation in JS (GraphQL.JS) ● Next it was implemented in every major language
  • 14. GraphQL Java GraphQL Java is the GraphQL implementation for Java ● It is an implementation for the server side GraphQL execution (also called execution engine) ● Started mid 2015 ● Pure engine: no HTTP or IO. No high level abstracts. ● Used word wide and empowers a whole ecosystem of libraries build on top ● https://graphql-java.com/
  • 15. How to think in GraphQL Java Schema first and DataFetchers ● Start designing by putting the Schema first ● Use case and client oriented ● Define the schema in SDL (textual format, preferred) or programmatically ● Schema is made out of types with fields ● Fundamental rule: every field has a DataFetcher associated with ● DataFetcher fetches the data for one field ● If you don’t specify a DataFetcher a default DataFetcher is provided
  • 17. PropertyDataFetcher PropertyDataFetcher DataFetcher Calling the employee service DataFetcher Calling the department service DataFetcher Calling the employee service
  • 18. 1 Query.allEmployees 2a Employee.id 2b Employee.name 2c Employee.department 3a Department.name 3b Department.employees 4 Employee.id Request Execution: DataFetchers sequence
  • 19. From GraphQL Java to Spring GraphQL Spring GraphQL is the missing gap in the developer story ● GraphQL Java is “limited” on purpose ● GraphQL Java lets you do everything, but not everything is as simple and convenient as possible ● The Spring and GraphQL Java teams came together to fix that ● Spring GraphQL is focused on comprehensive and first level support ● It aims to be a fundamental building block build directly on GraphQL Java
  • 21. Transport ? GraphQL Java Engine Data Fetchers Database Message Broker Microservice GraphQL Java
  • 22. GraphQL Java HTTP, WebSocket GraphQL Java Engine Data Fetchers Database Message Broker Microservice Spring MVC Spring WebFlux
  • 23. HTTP, WebSocket GraphQL Java Engine Data Fetchers Database Message Broker Microservice Initialization Context propagation Security Exception resolution Spring MVC Spring WebFlux
  • 24. GraphQL Java Engine Data Fetchers Database Message Broker Microservice @Controller Querydsl HTTP, WebSocket Spring MVC Spring WebFlux Initialization Context propagation Security Exception resolution
  • 25. GraphQL Java Engine Data Fetchers Database Message Broker Microservice HTTP, WebSocket Testing @Controller Querydsl repositories Spring MVC Spring WebFlux Initialization Context propagation Security Exception resolution
  • 26. GraphQL Java Engine Data Fetchers Database Message Broker Microservice Boot Starter Testing @Controller Querydsl repositories Spring MVC Spring WebFlux Initialization Context propagation Security Exception resolution HTTP, WebSocket
  • 27. Customize ExecutionInput Inspect ExecutionResult Web Transports WebMvc + WebFlux Functional HTTP Handlers WebSocket Handlers WebInterceptor WebInterceptor GraphQlService graphql.GraphQL
  • 28. Functional HTTP Handlers WebSocket Handlers WebInterceptor WebInterceptor GraphQlService graphql.GraphQL Reactor API Async Execution Mono from CompletableFuture Web Transports WebMvc + WebFlux
  • 30. GraphQL Java Engine Data Fetchers Service Service Service HTTP, WebSocket Handlers Spring Security Filter Chain @PreAuthorize @Secured Security
  • 31. Security and Context Propagation Spring MVC ThreadLocal context propagation from Servlet container thread Need to register ThreadLocalAccessor Built-in accessor for Spring Security context Spring WebFlux Reactor context propagation from web layer Spring Security context propagated
  • 32. GraphQL Java Engine Data Fetchers Service Service Service HTTP, WebSocket Handlers Spring Security Filter Chain @PreAuthorize @Secured Security Context Propagation
  • 39. type: Query, field: allEmployees
  • 40. type = Department, field = employees
  • 41. type = Mutation, field = updateSalary
  • 42. Exception Handling GraphQL Java allows registering a single DataFetcherExceptionHandler Spring GraphQL enables a DataFetcherExceptionResolver chain DataFetcherExceptionResolver ExceptionResolversExceptionHandler DataFetcherExceptionResolver DataFetcherExceptionResolver
  • 44. Querydsl Typesafe way to express queries in Java that works across multiple data stores Spring Data has support for Querydsl
  • 45. Spring GraphQL and Querydsl QuerydslDataFetcher Adapts a Spring Data repository to DataFetcher Translates GraphQL query parameters to Querydsl Predicate
  • 46. Adapt the Repository to a DataFetcher
  • 47. Match based on query return type for top-level queries Automatic Registration
  • 48. More on Querydsl Customize how GraphQL request parameters are mapped to Querydsl Predicate Transform the resulting Objects via interface and DTO projections
  • 49. GraphQlTester Workflow for testing GraphQL Automatic checks to verify no errors in response Use JsonPath to specify data to inspect Data decoding
  • 50. WebGraphQlTester Extension for GraphQL tests over web transports Specify HTTP specific inputs Uses WebTestClient
  • 53. Spring Boot Starter Currently In Spring GraphQL repository, group id ‘org.springframework.experimental’ Due to move to Spring Boot, after version 2.6 is released
  • 54. Collaboration with Netflix DGS Optional, alternative starter to run DGS on the spring-graphql core DGS programming model + spring-graphql WebMvc / WebFlux foundation spring-graphql starter to become the main starter eventually
  • 55. Netflix DGS Features Annotation based registration of data fetchers, data loaders, scalars, etc. Code generation for GraphQL Schema -> Java/Kotlin GraphQL client for Java/Kotlin Federation
  • 56. Roadmap Timeline M3: mid-October Starter integrated into Spring Boot, after 2.6 release RC phase: early 2022 GA: May 2022 with Spring Boot 2.7
  • 57. Roadmap Features Evolve controller programming model, #63 (batch loaders), #110 (bean validation) Automated registration of Spring Data repositories, #99 Query by Example (QBE) support as an alternative to Querydsl, #115 GraphQL client, #10 More...
  • 59. Thank you Andreas Marek @andimarek Rossen Stoyanchev @rstoya05 © 2021 Spring. A VMware-backed project.