Build Reactive RESTFUL APIs using Spring Boot/WebFlux

9h 34m 2s
English
Paid

Course description

Learn to write reactive programming in Spring using WebFlux/Reactor and build Reactive RESTFUL APIs.

Read more about the course

This course is structured to give you both the theoretical and coding aspect of Reactive Programming and Reactive RestFul APIs using Spring WebFlux.

If you are looking forward to learn the below listed things:

  • What is Reactive Programming ?

  • Write Reactive Programming code with Spring WebFlux.

  • Write Reactive Programming code with DB.

  • Building Reactive RestFul APIs with Spring WebFlux

Then this is the right course for you. This is a pure hands on oriented course where you will be writing lots of code.

By the end of this course you will have the complete understanding of coding and implementing a Reactive API using Spring WebFlux.

Why Reactive Programming ?

  • This section highlights about the need for reactive programming and explains in detail about the current execution model in spring-mvc.

  • This sections explains about the drawbacks in spring-mvc.

  • This section explains about the concurrency model in spring-mvc.

What is Reactive Programming?

  • This section talks about "What is Reactive Programming ?"

  • How Reactive programming works in a nutshell using a simple example.

  • This section will give you all an introduction to Reactive Streams Specification.

  • This section will give all an introduction to "Reactive Libraries" that are out there.

Getting started with Project Reactor

  • This section will give you all the fundamentals of Project Reactor and explore the project reactor using some examples.

  • This section covers the Reactive Types Flux and Mono in detail.

Setting up the Project for this course

  • In this section we will set up the project for this course using the Spring Intializr website.

Reactive Programming (Flux and Mono) - Hands on + Junit Testing

  • In this section we will explore about how Flux and Mono works via code.

  • We will do live coding on how to write Junit test cases using Flux and Mono.

  • We will explore lot of different operators in Flux and Mono.

Build the first Non Blocking RESTFUL API using Annotated Controllers - Hands On

  • In this section we will build the first non blocking API using the annotated controllers.

  • This section covers the fundamentals of how the reactive API works.

  • This sections also covers the coding aspect of how to return a Flux/Mono from an end point.

  • This section also covers how to write JUNIT test cases using WebTestClient.

Build Non Blocking RESTFUL API using Functional Web - Hands On

  • In this section we will build the non blocking API using the Functional Web Module.

  • This sections explains about the RouterFunction and HandlerFunction which forms the foundation for Function Web Module.

  • This section also covers how to write JUNIT test cases using WebTestClient.

Spring WebFlux & Netty - Execution Model

  • This section explains about the different layers behind WebFlux to serve a HTTP Request/Response.

  • This sections covers the concepts of NETTY such as Channel, EventLoop and some of the technical aspects of Netty.

Overview of the Reactive API

  • This section will give you an Overview of the Reactive API that we are going to build as part of this course.

Reactive Programming in Databases - MongoDB - Hands On

  • In this section we will learn about how to write the reactive programming code with MongoDB.

  • Define the Item Document for the project.

  • This section covers about how to configure different profiles in Spring Boot.

  • In this section we will set up the ItemReactive Mongo DB adapter.

  • This section also covers how to write JUNIT test cases for the reactive repository.

Build the Item Reactive API Endpoint - Using RestController

  • In this section we will learn about how to code the Item CRUD Reactive API using the @RestController approach.

  • This section also covers how to write automated tests using JUNIT and the non blocking test client WebTestClient.

Build the Item Reactive API Endpoint - Using Functional Web

  • In this section we will learn about how to code the Item CRUD Reactive API using the Functional Web approach.

  • This section also covers how to write automated tests using JUNIT and the non blocking test client WebTestClient.

Build Non Blocking Client using WebClient

  • In this section we will explore the techniques to interact with Reactive API using the WebClient.

  • Learn the techniques to Invoke the Reactive API using exchange() and retrieve() methods.

  • We will explore the GET, PUT, POST and DELETE operations using the WebClient.

Handling Exceptions in WebFlux - RestController

  • In this section we will code and explore different approaches to handle the exceptions/errors that occurs in the reactive api that’s built using RestController.

  • Handle exceptions using @ExceptionHandler and @ControllerAdvice.

  • This section also covers how to write JUNIT test cases for the Exception scenarios.

Handling Exceptions in WebFlux - Functional Web

  • In this section we will code and explore different approaches to handle the exceptions/errors that occurs in the reactive api that’s built using Functional Web.

  • Handle exceptions using WebExceptionHandler.

  • This section also covers how to write JUNIT test cases for the Exception scenarios.

WebClient - Exception Handling

  • In this section we will code and explore how to handle the exceptions using the WebClient.

  • Learn the techniques to handle the exceptions using exchange() and retrieve() methods.

Streaming Real Time Data using WebFlux - Server Side Events (SSE)

  • In this section we will code and learn about build an endpoint for Streaming RealTime Data using Mongo DB and Spring WebFlux.

  • This section covers about the Tailable Cursors and Capped Collections in Mongo DB.

  • Build a Non Blocking Streaming Endpoint and interact with the Mongo DB using the @Tailable annotation.

  • Learn to write Automated Tests using JUNIT for the Streaming Endpoints (SSE).

Requirements:
  • At least JDK 8
  • Any one of the IDE like IntelliJ, Eclipse, etc.,
  • Spring Boot Knowledge is a must to make the most out of this course
Who this course is for:
  • Anyone who is willing to learn and build Reactive APIs using Spring WebFlux

What you'll learn:

  • What problems Reactive Programming is trying to solve ?
  • What is Reactive Programming?
  • Reactive Programming using Project Reactor
  • Learn to Write Reactive programming code with DB
  • Learn to Write Reactive Programming with Spring
  • Build a Reactive API from Scratch
  • Learn to build Non-Blocking clients using WebClient
  • Write end to end Automated test cases using JUNIT for the Reactive API

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 86 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Build Reactive RESTFUL APIs using Spring Boot/WebFlux

0:00
/
#1: Course Introduction

All Course Lessons (86)

#Lesson TitleDurationAccess
1
Course Introduction Demo
02:07
2
Prerequisites
01:04
3
Why Reactive Programming ?
08:59
4
Traditional Rest API Design - How it works ?
07:44
5
What is Reactive Programming ?
09:32
6
Reactive Streams Specification
07:58
7
Reactive Libraries
03:34
8
Introduction to Project Reactor
01:20
9
Reactor Types - Flux and Mono
07:31
10
Project Setup
07:11
11
Flux - How it works ?
12:15
12
Flux - Learn to write JUNIT Tests
10:17
13
Mono - How it works and write Junit Tests
04:44
14
Flux/Mono - Exploring Factory methods
16:39
15
Filtering a Reactive Stream
04:27
16
Transforming a Reactive Stream using map
08:28
17
Transforming a Reactive Stream using flatMap
17:17
18
Combining Reactive Streams
12:37
19
Handling Errors in a Reactive Stream
16:27
20
Infinite Reactive Stream
10:59
21
Back Pressure - How it works ?
14:23
22
Push/Pull Communication Model
01:09
23
Hot vs Cold Reactive Streams
08:10
24
Virtualizing Time in Junit
08:59
25
How to get help ?
01:55
26
Introduction to Spring Boot 2
03:17
27
Build the Simple Non Blocking API
09:34
28
Junit : Test for Non Blocking API using WebTestClient
15:56
29
Junit : Test for infinite Non Blocking Sequence API using WebTestClient
08:59
30
Build the simple Non Blocking API - Mono
04:08
31
Introduction to Functional Web in Spring WebFlux
02:13
32
Build the simple Non Blocking API using Handler and Router Functions
10:13
33
Junit : Test for Functional EndPoint using WebTestClient
08:09
34
Spring WebFlux - Behind the Scenes
07:38
35
Introduction to Netty - Channel, EventLoops
06:58
36
Netty - End to End, Threads, Execution Model
06:32
37
Application Overview
01:54
38
Setting up Mongo DB
05:18
39
Spring Profiles
09:36
40
Build the "Item" Document
03:03
41
Build the Reactive Item Mongo Repository
02:01
42
Reactive Mongo Repository operations using JUNIT - Read - Part1
12:23
43
Reactive Mongo Repository operations using JUNIT - Read - Part2
05:01
44
Reactive Mongo Repository operations using JUNIT - Custom Read Operation
05:10
45
Reactive Mongo Repository operations using JUNIT - Insert
05:05
46
Reactive Mongo Repository operations using JUNIT - Update
04:50
47
Reactive Mongo Repository operations using JUNIT - Delete
08:25
48
Build Artifact
06:12
49
Get All Items
06:48
50
Initialize the data using CommandLineRunner
08:23
51
Get All Items - JUNIT Test using WebTestClient - Part 1
09:34
52
Get All Items - JUNIT Test using WebTestClient - Part 2
05:40
53
Get a Single Item
06:57
54
Create an Item EndPoint
06:09
55
Delete an Item Endpoint
04:32
56
Update an Item Endpoint
05:19
57
Update an Item Endpoint - JUNIT
09:23
58
Setting up the Router Function and Handler Function for Item Reactive API
02:18
59
Get All Items - Functional Endpoint
05:13
60
Get All Items - JUNIT Test using WebTestClient
02:55
61
Get a Single Item - Functional Endpoint
07:38
62
Create an Item - Functional Endpoint
04:36
63
Delete an Item - Functional Endpoint
03:30
64
Update an Item - Functional Endpoint
06:39
65
Setting up the Item WebClient Project
06:16
66
Explore the retrieve() and exchange() in WebClient
10:53
67
Passing Path Variable using WebClient
06:26
68
Post call using WebClient
05:39
69
PUT call using WebClient
06:24
70
Delete call using WebClient
03:53
71
Handling Exceptions using @ExceptionHandler
08:13
72
Handling Exceptions using @ControllerAdvice
03:06
73
Handling Exceptions in Controller - JUNIT
02:48
74
Default Exception Behavior - Functional Web
05:01
75
Handling Exceptions using AbstractErrorWebExceptionHandler
06:41
76
Handling Exceptions in Functional Web - JUNIT
02:54
77
Handling Errors in WebClient - retrieve()
08:08
78
Handling Errors in WebClient - exchange()
05:08
79
What is a Streaming EndPoint ?
02:35
80
Setting up the Capped Collection - MongoDB
05:08
81
Build the Reactive ItemCapped Mongo Repository
02:28
82
Initialize the data using CommandLineRunner
06:45
83
Build the Stream Endpoint using Controller
05:29
84
JUNIT Test for Streaming endpoint using Controller
07:54
85
Build the Stream Endpoint using Functional Web
05:38
86
JUNIT Test for Streaming endpoint using Functional Web
02:40

Unlock unlimited learning

Get instant access to all 85 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Event-Driven Microservices, CQRS, SAGA, Axon, Spring Boot

Event-Driven Microservices, CQRS, SAGA, Axon, Spring Boot

Sources: udemy
In this video course, you will learn how to build business logic that spans several distributed Spring Boot Microservices. This course is designed for beginners and we will sta...
8 hours 55 minutes 3 seconds
Spring Boot Microservices with Spring Cloud Beginner to Guru

Spring Boot Microservices with Spring Cloud Beginner to Guru

Sources: udemy
Microservices are all the buzz in the industry right now. Building a microservice is not just a matter of using RESTFul APIs. Microservices are much MUCH more than that. In this...
34 hours 14 minutes 34 seconds
Spring 6 & Spring Boot 3 for Beginners (Includes 5 Projects)

Spring 6 & Spring Boot 3 for Beginners (Includes 5 Projects)

Sources: udemy
In this course, you will learn Spring Framework Core 6, Spring Boot 3, REST API, Spring MVC, WebFlux, Spring Security, Spring Data JPA, Docker, Thymeleaf, IntelliJ IDEA, Maven, ...
34 hours 28 minutes 12 seconds
Master Java Unit Testing with Spring Boot & Mockito

Master Java Unit Testing with Spring Boot & Mockito

Sources: udemy
Spring Boot is the most popular framework to develop RESTful Services. It has Awesome Unit Testing capabilities through Spring Boot Starter Test. Mockito is the most popular moc...
3 hours 56 minutes 12 seconds
Stratospheric - From Zero to Production with Spring Boot and AWS + BOOK

Stratospheric - From Zero to Production with Spring Boot and AWS + BOOK

Sources: leanpub
Hands-on online course to learn all you need to know to get a Spring Boot application into production with AWS. This online course builds on top of the...
7 hours 19 minutes 39 seconds