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:
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
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
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
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).
This lecture has the final version of the source code attached and the GitHub URL is also linked.
This lecture contains the course slides thats used in this course.
In this lecture, I will explain the traditional programming models, blocking APIs, and Spring MVC architecture which leads to the need for "Reactive Programming".
In this lecture, I will explain the techniques to combine Asynchronous APIs and drawbacks of Spring MVC architecture
In this lecture, I will explain about Reactive Programming, and the concepts related to Reactive Programming.
In this lecture, I will give an introduction to reactive streams and the history connected to them.
In this lecture, I will give you an introduction to non-blocking restful API and Spring WebFlux
In this lecture, I will give you all an introduction to Project Reactor, and the different modules that are part of Project Reactor.
In this lecture, I will explain about the Reactive Types "Flux" and "Mono" that's part of project reactor
In this lecture, we will set up the base project for the course that we will be using for the rest of this course
In this lecture, I will code and explain how to create a "Flux" and read the data from the flux.
In this lecture, I will code and explain how to create a "Mono" and read the data from the flux.
In this lecture, I will demonstrate how to look into the events that are happening between the publisher and subscriber behind the scenes.
In this lecture, I will code and explain how to write test cases to test the behavior of Flux
In this lecture, I will give you an introduction to why Transforming the data from its original form is needed in enterprise development.
In this lecture, I will code and explain about the map() operator that's part of Project reactor Library
In this lecture, I will code and explain about the immutable nature of Reactive Streams using a simple example
In this lecture, I will code and explain about the filter() operator that's part of Project reactor Library
In this lecture, I will code and explain the flatmap() operator and explain the differences between the map and flatmap.
In this lecture, I will code and explain performing asynchronous operations using flatmap() operator and explain the differences between the map() and flatmap().
In this lecture, I will code and explain the concatmap() operator and explain the differences between flatmap and concatmap.
In this lecture, I will code and explain about using the flatMap operator in Mono.
In this lecture, I will code and explain the flatMapMany operator in Mono.
In this lecture, I will code and explain the transform operator.
In this lecture, I will code and explain the switchIfEmpty() and defaultIfEmpty() operators and the differences between them.
In this lecture, I will give you all an introduction to combining reactive streams and the need for them in today's software development.
In this lecture, I will code and explain the techniques of combining Publishers using the concat and concatWith operator.
In this lecture, I will code and explain about combining Publishers using the merge and mergeWith operator.
In this lecture, I will code and explain about combining Publishers using the mergeSequential operator.
In this lecture, I will code and explain about combining Publishers using the zip and zipWith operators.
In this lecture, I will introduce you to the options that are available when it comes to building nonblocking APIs using spring webflux.
In this lecture, I will give a quick overview of the application that we are going to build as part of this course
In this lecture, we will set up the base project for MovieInfo Service
In this lecture, I will code and explain about building a simple non blocking API that returns a Flux using Annotated Controller approach
In this lecture, I will code and explain about building a simple non blocking API that returns a Mono using Annotated Controller approach
In this lecture, I will code and explain about building streaming endpoints using Spring Webflux
In this lecture, I will give a general introduction to Automated tests
In this lecture, we will code and explore the technique to write a Unit test for the Controller Layer
In this lecture, we will code and explore different techniques to write a Unit test for the Controller Layer and assert on the Response body
In this lecture, we will code and learn about the technique to write a Unit Test for the endpoint that returns a Mono
In this lecture, we will code and explore the technique to write a Unit test for the SSE endpoint
In this lecture, I will set up the movieinfo domain that's needed for the MoviesInfoService
In this lecture, we will create the MovieInfoRepository interface and add the necessary annotation to mark the movieinfo domain as a MongoDB document
In this lecture, we will set up the mongo DB server config details using the application.yml file
In this lecture, we will set up the Integration test for testing the MovieInfo Entity
In this lecture, we will write the integration test for finding all the Documents in the Mongo Db
In this lecture, we will write the integration test for finding a single Document in the Mongo Db
In this lecture, we will write the integration test for updating an existing Document in the Mongo Db.
In this lecture, we will write the integration test for deleting a single Document in the Mongo Db
In this lecture, we will build an endpoint to create a movieinfo resource in the Database
In this lecture, we will write the integration test for the POST endpoint to create a new MovieInfo
In this lecture, we will build an endpoint to get all the movieinfos that's available present in the DB
In this lecture, we will build an GET endpoint to retrieve a MovieInfo by Id
In this lecture, we will build a PUT endpoint to update a MovieInfo resource that already exists.
In this lecture, we will write the integration test for the DELETE endpoint to to remove an existing MovieInfo
In this lecture, we will code and set up the base class for Unit Testing the MovieInfoController.
In this lecture, we will code and learn how to write the unit test for the getAllMovies Endpoint
In this lecture, we will code and learn how to write the unit test for the createMovieInfo Endpoint
In this lecture, we will code and learn how to write the unit test for the updateMovieInfo Endpoint
In this lecture, we will code and learn about how to implement the bean validations using the Validator module in Spring Ecosystem
In this lecture, we will code and learn about how to customize the error handling and provide a meaningful error message to the client using ControllerAdvice
In this lecture, we will code and learn about how to implement the bean validations for the cast field which is a list using the Validator module in Spring Ecosystem
In this lecture, I will explain about the need for using response entity in the nonblocking APIs
In this lecture, we will code and explore how to handle the update operation for a record that does not exist in the DB and provide appropriate response status
In this lecture, we will learn about the technique to write custom queries using ReactiveMongoRepository
In this lecture, we will code and learn how to pass a RequestParam to an endpoint in Spring WebFlux
In this lecture we will look in to the threading model of how Netty handles request.
In this lecture, I will explain about the internals of how netty works.
In this lecture, I will give an introduction to Functional Web module in Spring Webflux.
In this lecture, we will build a simple RestFul Endpoint using the Functional Web Module
In this lecture, we will set up the repository class for the Review Document
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.