
In this chapter, we will discuss:
The transformative impact of GraphQL, and its widespread adoption in the tech industry.
An overview of the course.
Chapters overview:
Introduction
REST vs GraphQL
SpringBoot GraphQL Project Setup
SpringBoot GraphQL in Action
Mastering GraphQL Schemas : A Deep Dive
SpringBoot - GraphQL Controller vs REST Controller
GraphQL Queries
GraphQL and N + 1 Problem
Batch Mapping
GraphQL Mutations. How to handle CRUD operations
GraphQL - Extended Scalars
GraphQL Error Handling
GraphQL Exception Handlers
Request Interceptors
GraphQL Security with HTTP Authentication
GraphQL Security with OAuth 2.0
GraphQL Security with JWT
Lecture : Why GraphQL is a Better Choice for Microservice ?
Project : Create Deposit Account Management MicroService.
What you'll learn in this chapter:
Explore the fundamental concepts of GraphQL.
Delve into the traditional REST API design and understand what GraphQL offers.
Get an overview of GraphQL’s strongly typed, predefined schemas.
Overview of GraphQL error handling strategies compared to REST's .
Grasp the flexibility of GraphQL in API versioning
Explore the performance implications of both GraphQL and REST.
Key Takeaways from this Chapter:
Learn to start a new Spring Boot GraphQL project using Spring Initializr.
Understand the steps to configure your project in an IDE, with a focus on setting up Maven dependencies.
Live Coding Session & Source Code.
Key Highlights:
Setting up a Spring Boot project with GraphQL dependencies.
Designing a GraphQL schema for our Bank Account Management System.
Implementing GraphQL queries in Spring Boot.
Exploring the use of annotations like @QueryMapping and @SchemaMapping.
Live Coding Session, demo & Source Code.
In this episode, we'll cover:
Learn about the backbone of any GraphQL API, the GraphQL schema.
Get insights into how to define various object types in your schema.
Understand the default scalar types provided by GraphQL.
Role of Query, Mutation, and Subscription types.
In this episode, we delve into:
Explore how REST Controllers function in Spring Boot.
Understand how GraphQL Controllers differ, focusing on a single endpoint approach.
Weigh the advantages and disadvantages of each approach.
What we'll cover:
Understand the fundamental concept of GraphQL queries.
Learn how to construct queries that precisely ask for the data you need.
Explore various query structures, including nested queries and the use of aliases and fragments.
Discover best practices for optimizing your GraphQL queries.
Live Coding Session.
In this episode, we'll explore:
Dive into what the N+1 problem is and how it manifests in GraphQL.
Illustrate how the N+1 problem can impact the performance of your GraphQL API.
Learn about this Spring-specific solution to efficiently fetch data and address the N+1 problem .
Live Coding Session & Source Code.
In this episode, you'll learn:
Understand the role of @BatchMapping in GraphQL and how it helps in batching data fetching requests.
Follow a step-by-step guide to implement @BatchMapping in our Spring Boot project.
Live Coding Session & Source Code.
What you'll learn in this episode:
Understand the role of mutations in GraphQLs.
Dive into practical examples where we implement create, read, update, and delete operations using GraphQL.
Learn how to design your GraphQL schema to handle mutations.
Live Coding Session & Source Code.
In this episode, we'll cover:
Understand what extended scalars are in GraphQL.
Dive into some key examples like DateTime, Country Code, and Positive Float.
Watch a live coding session where we implement and test extended scalars.
Live Coding Session & Source Code.
In this episode, you'll learn:
Understand how GraphQL handles errors differently compared to traditional REST APIs.
Explore the components of a GraphQL error response, including 'message', 'locations', 'path', and 'extensions'.
Follow a live coding session where we simulate various error scenarios and implement error handling.
Live Coding Session & Source Code.
This course, is a comprehensive guide, designed for developers looking to master the art of creating efficient, modern APIs using GraphQL in conjunction with Spring Boot, one of the most popular frameworks in the Java ecosystem.
Course Learning Objectives:
Learn to build Microservices with GraphQL APIs: using Spring Boot 3 and Java 17
Learn to apply easy steps to GraphQL schema modularization.
Learn to write effective GraphQL queries and GraphQL Mutations.
Learn to create GraphQL interfaces, GraphQL fragments and Aliases.
Learn to use GraphQL extended scalars libraries for Spring Boot for advanced data types.
Apply GraphQL Security with HTTP Authentication, OAuth 2.0, and JWT Authentication and Authorization.
Learn to write JUint testecases for your GraphQL queries and mutations using GraphQL tester interface.
The primary learning objectives of the course is to equip participants with a thorough understanding of GraphQL as a powerful API query language and its effective integration with Spring Boot.
By the end of the course, attendees will be adept at building and deploying efficient, scalable, and robust GraphQL APIs using Spring Boot 3 and JDK 17, ready to tackle real-world challenges in modern web development.
Complete a real-world project assignment :
To reinforce our understanding of Microservices, GraphQL, Spring Boot, Java 17 - we will build a real-world project "Financial Data Exchange (FDX) compliant, Deposit Account Management Microservice.'
Key take aways from the Project:
GraphQL Schema Design
Spring Boot Integration
Implementing CRUD Operations
Error Handling
Securing GraphQL endpoints with HTTP Authentication, OAuth 2.0, and JWT.
Modularization of GraphQL Schema
Validation and Enum Usage
Unit Testing with GraphQL IT Tester Framework