Build Reactive RESTFUL APIs using Spring Boot/WebFlux
4.3 (988 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
5,978 students enrolled

Build Reactive RESTFUL APIs using Spring Boot/WebFlux

Learn to write reactive programming in Spring using WebFlux/Reactor and build Reactive RESTFUL APIs.
4.3 (988 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
5,978 students enrolled
Created by Dilip S
Last updated 11/2019
English
English [Auto-generated]
Current price: $69.99 Original price: $99.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 9.5 hours on-demand video
  • 3 articles
  • 69 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
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
Course content
Expand all 89 lectures 09:39:05
+ Getting Started with the Course
2 lectures 03:09

In this tutorial I will give you all a quick introduction to this course and what's covered in the course.

Preview 02:06
+ Source Code for the course
2 lectures 00:13

This lecture has the final version of the source code attached and the GitHub URL is also linked.

Source Code
00:12

This lecture has slides used in the course.

Course Slides
00:01
+ Why Reactive Programming ?
2 lectures 16:41

In this tutorial we will talk about Why Reactive programming is needed and talk about the concerns that we have in todays Rest API development?

Preview 08:58

In this tutorial we will learn about the current design of restful apis and discuss   the concerns with the current design.    

Traditional Rest API Design - How it works ?
07:43
+ Introduction to Reactive Programming
3 lectures 21:01

In this tutorial I will explain the concepts that form the foundation of reactive programming.

Preview 09:31

In this tutorial I will explain about what is reactive stream specification and which proivides the standard for reactive programming.

Preview 07:57

In this tutorial I will cover the reactive libraries out there and the reactive library that we are going to use for this course.

Reactive Libraries
03:33
+ Getting started with Project Reactor
2 lectures 08:49

In this tutorial I will give you a quick introduction to Project Reactor and the different modules that are available in Project Reactor.

Preview 01:19

In this tutorial I will cover the reactive types Flux and Mono and its internals.

Reactor Types - Flux and Mono
07:30
+ Setting up the Project for this course
1 lecture 07:10

In this tutorial we will set up the project in IntelliJ which will be used for this whole course.

Project Setup
07:10
+ Reactive Programming (Flux and Mono) - Hands on + JUNIT Testing
15 lectures 02:28:31

In this video we will learn about how Flux/Mono works at its core and demystifying the internals of it.

Preview 12:14

In this tutorial we will learn about how to write JUNITs for the Flux reactive type.

Preview 10:16

In this tutorial we will learn about how to write Junits for the Mono reactive type.

Mono - How it works and write Junit Tests
04:43

In this tutorial we will learn about how to create flux/mono using some of the other factory methods that are part of the project reactor.

Flux/Mono - Exploring Factory methods
16:38

In this tutorial we will learn about how to filter the elements using the Flux.

Filtering a Reactive Stream
04:26

In this tutorial we will learn about how to transform a flux using the map() operator.

Transforming a Reactive Stream using map
08:27

In this tutorial we will learn about how to transform a flux using the flatmap() method.

Transforming a Reactive Stream using flatMap
17:16

In this tutorial we will learn about how to combine reactive streams  using merge , concat and zip operators.

Combining Reactive Streams
12:36

In this tutorial we will learn about how to handle the error that happened in a reactive sequence.

Handling Errors in a Reactive Stream
16:26

In this tutorial we will learn about how to create an infinite reactive sequence and how to write test cases for an infinite sequence.

Infinite Reactive Stream
10:58

In this tutorial we will learn about back-pressure and how this can be implemented using project reactor.

Back Pressure - How it works ?
14:22

In this tutorial we will learn about interaction model between publisher and subscriber in the reactive programming world.

Push/Pull Communication Model
01:08

In this tutorial we will learn about the hot and cold reactive streams using project reactor.

Hot vs Cold Reactive Streams
08:09

In this tutorial we will learn about how to virtualize time so that we can have the tests with delay to run faster during the build task in gradle.

Virtualizing Time in Junit
08:58

In this tutorial I will share some reference docs and gitter community to reach out in case if you are stuck with any issues related to project reactor.

How to get help ?
01:54
+ Build the first Non Blocking RESTFUL API using Annotated Controllers - Hands On
5 lectures 41:48

In this tutorial I will share the web modules that are supported in the Spring Ecosystem in Spring 5.0.

Preview 03:16

In this tutorial we will code the first nonblocking restful api using the annotated controllers approach.   

Build the Simple Non Blocking API
09:33

In this tutorial we will write the JUNIT test cases for the non blocking api using  WebTestClient.   

Junit : Test for Non Blocking API using WebTestClient
15:54

In this tutorial we will write the JUNIT test cases for the non blocking infinite sequence api using WebTestClient.   

Junit : Test for infinite Non Blocking Sequence API using WebTestClient
08:58

In this   tutorial we will build an endpoint that returns a Mono and write a JUNIT test case using WebTestClient.   

Build the simple Non Blocking API - Mono
04:07
+ Build Non Blocking RESTFUL API using Functional Web - Hands On
3 lectures 20:31

In this tutorial I will give an introduction to functional web module in Spring WebFlux.   

Introduction to Functional Web in Spring WebFlux
02:12

In this tutorial we will code non blocking restful apis using the functional web module in Spring Webflux.

Build the simple Non Blocking API using Handler and Router Functions
10:11

In this tutorial we will write the JUNIT test cases for the Functional Endpoint using WebTestClient.

Junit : Test for Functional EndPoint using WebTestClient
08:08
+ Spring WebFlux & Netty - Execution Model
3 lectures 21:05

In this tutorial we will learn about the different layers that are involved before serving a HTTP request.

Spring WebFlux - Behind the Scenes
07:37

In this   tutorial we will learn about the Netty server, channel, eventloop and some of its technical aspects.   

Introduction to Netty - Channel, EventLoops
06:57

In this tutorial we will learn about end to end flow of Netty, execution model and thread in Netty.

Netty - End to End, Threads, Execution Model
06:31
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
Description

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).


Who this course is for:
  • Anyone who is willing to learn and build Reactive APIs using Spring WebFlux