Build Production Ready REST API in Spring Boot - Expense App

Learn building production ready REST APIs in Spring Boot 3, JPA, Spring Security 6, JWT, MySQL and Deploy to AWS, Docker

4.66 (301 reviews)
Udemy
platform
English
language
Web Development
category
instructor
3,433
students
18 hours
content
Oct 2023
last update
$69.99
regular price

What you will learn

Learn building End-to-End Production Ready REST API

Build a complete Expense Manager REST API with Spring Boot, Spring Security, Data JPA, JWT and MySQL Database

Learn to create REST end points to perform Database operations

Learn how validate the REST APIs

Learn how to handle Exceptions and create Custom Exceptions

Learn how create Mapping between two Entities

One to One mapping

One to One Bi-directional mapping

One to Many mapping

One to Many Bi-directional mapping

Learn how to filter the records by writing JPA finder/query methods

Learn how to use Lombok

Learn how use Spring Security in Spring Boot application

Learn how to configure multiple Users using In-memory Authentication

Learn how to test REST APIs in Postman effectively

Learn how to use Postman advance features

Learn how to add Swagger for API Documentation

Learn how to add JWT token based Authentication to Spring Boot application

Learn how to deploy Spring Boot application to Heroku

Learn how to deploy Spring Boot application to AWS

Learn how to dockerize the Spring Boot Application with MySQL database

Learn how to Create REST API with Spring Boot and MongoDB database

Learn how to connect Spring Boot application with MongoDB database

Learn how to Perform the database (CRUD) operations with MongoRepository

Learn how to create finder methods using MongoRepository

Learn how to connect Spring Boot application with MongoDB Atlas (Production Server)

And many more...

Description

Welcome to the World's Best Online Course for learn and building Production Ready REST API for Expense Manager API. There is a lot packed into this course, Let's see what's included in this course -


NOTE: I will be updating the course when there is any changes made in the newer versions of Spring Boot.


NEW UPDATES [31/01/2023]: I Added New Videos on

- Upgrading to Spring Boot v3.0.2

- Spring Security without using WebSecurityConfigurerAdpater


NEW UPDATES [25/07/2022]: I Added New Videos on

- Create REST APIs with Spring Boot and MongoDB

- Create Simple Todo REST API with all the CRUD operations using MongoRepository

- Create finder methods using MongoRepository

- Connect Spring Boot Application to MongoDB Atlas (Production database)

- Deploy the Application to Heroku


NEW UPDATES [20/05/2022]: I Added New Videos on

- Dockerize the Java Program

- Dockerize the Spring Boot Application

- Dockerize the Spring Boot Application with MySQL Database


Updating the course with new content

COMING SOON


What is Spring Boot?

Spring is one of the most popular framework for building Enterprise applications

Spring Boot is a tool to create Spring based applications quickly and easily with zero configuration.


What is Spring Data JPA?

Spring Data JPA is Java Persistence API for Object Mapping, Hibernate is the default implementation for JPA.


What is Spring Security?

Spring Security is separate project, created by spring team. We can use Spring Security to secure the application.


What is JWT?

JWT is a JSON Web Token, which is used to Secure the REST APIs using token based mechanism


We will start from absolute scratch -

  • Understanding the REST APIs/RESTful Web Service

  • Understanding the basics of Spring Boot such as, Spring Boot Starters, SpringBootApplication annotation, Spring Boot project structure

  • You will learn the different ways of creating Spring Boot project

  • You will learn to create the REST end points

  • You will connect Spring Boot application to MySQL database

  • You will learn to perform the database operations using Data JPA

  • You will learn validating the REST APIs

  • You will learn handling the exceptions, custom exceptions, global exceptions and many more

  • You will learn adding Pagination and Sorting to REST APIs

  • You will learn creating REST end points for Users

  • You will add Spring Security to the application

  • You will understand the Spring Security default configuration

  • You will learn configuring multiple users using In-memory authentication

  • You will learn creating custom user details and validate user against MySQL database

  • You will learn the Basic Authentication

  • You will create REST end point for Login

  • You will learn reading the records only for the logged in user

  • You will learn Mapping two entities using OneToMany annotation

  • You will learn using Lombok annotations

  • You will learn adding JWT to the application

  • You will JWT token based authentication

  • You will learn the advance features of Postman REST client

  • You will learn setup the automation script inside the Postman to test APIs

  • You will learn basic Git commands to push the code to Github repository

  • You will learn deploying the application to the Production server (Heroku)

  • You will learn dockerize the Spring Boot Application with MySQL database

Content

Demo of the application and Source code

Demo of the final API (Expense Manager API)
Source Code and PDFs

Basics of RESTful Web Services/REST API

Understand the REST API/RESTful Web Service
Understand the application architecture

Setting up the development environment

Download and Install Java JDK
Download and Install the development IDEs
Download and Install MySQL server and MySQL Workbench
Download and Install Postman REST client

Basics of Spring Boot

Different ways of creating Spring Boot project
Create Spring Boot project using Spring Initializer
Create Spring Boot project in STS
Understand the Spring Boot project structure
Understand Spring Boot starters
Understand @SpringBootApplication annotation

Create REST end points for Expense Module

Create a REST end point for Expenses
Add all the dependencies to the application
Create database and table for Expense
Configure the datasource
Fetch the list of expenses from the Database
Write a code to fetch list of expenses from Database
Create database tables using JPA
Test the APIs in Postman and Organise the APIs in Postman
Run the project in command prompt using Maven
Add the base URL to the API
Understand passing a parameter in the URL using Path Variable
Write a code to pass parameter in the URL using Path Variable
Understand passing a parameter in URL using Query strings
Write a code to pass parameter in the URL using Query strings
Retrieve the expense by its id from database
Delete the expense by its id from database
Map the HTTP request body to Java object
Save the expense details to the database
Update the expense details to the database
Create a REST end point to update the expense details
Save the timestamps to the database
Understanding the HTTP Response Status codes
Add the HTTP Response Status codes to all REST end points

Adding Pagination and Sorting for Expenses Module

Understanding the Pagination and Sorting
Add pagination to the Expenses
Add Sorting to the Expenses

Handling Exceptions

Create a custom Exception for Expenses
Write a code for Creating Custom Exception
Refactor the code for Custom Exception
Handle Bad Request Exception
Write a code for Handling Bad Request Exception
Handle Internal Server Error Exception
Write a code for Handling Internal Server Error

Add Validations to the REST APIs

Understanding the Hibernate Validator and its Annotations
Add validations to the Expense entity
Write a code for Adding validations to Expense entity
Customize the error response
Add validations to all other fields

Filtering the Records

Development steps for filtering the expenses by category
Creating a REST end point for filtering the expenses by its category
Development steps for filtering the expenses by its name
Creating a REST end point for filtering expenses by its name
Development steps for filtering the expenses by its dates
Creating a REST end point for filtering the expenses by its dates

Create REST end points for User module

Development steps for creating a new user
Write a code for creating a new user
Add validations to the register api
Create a custom exception for existing email
Development steps for reading the user information
Create a REST end point to read user information
Development steps for updating the user infomation
Create a REST end point to update the user information
Update the record to the database
Development steps for deleting the user information
Create a REST end point to delete the user information

Configure Spring Security to the Application

Add spring security to the application
Understand the spring security control flow
Development steps for customizing the HTTP requests
Write a code for customizing the HTTP requests
Development steps for customizing the multiple users
Write a code for customizing the multiple users
Development steps for customizing the users (Second approach)
Write a code for customizing the multiple users (Second approach)
Development steps for creating custom user details service
Write a code for creating custom user details
Encode the password using BCryptPasswordEncoder
Development steps for creating login REST end poing
Write a code for creating login REST end point

Setup Mapping between Expenses and Users

Understanding the mapping between User and Expense
Write a code for mapping between Expense and User
Get the logged in user details
Add the user details to expense object just before saving to the database
Read all the expenses for logged in user
Read single expense for logged in user
Delete and Update expense for logged in user
Update the finder methods for logged in user
Update the REST end points for user module

Add JWT to the application

Overview of JWT and Its control flow
Development steps of adding JWT to the application
Refactor the Login API
Generate the JWT token
Update the Jwt util class
Create a custom filter
Validate the Jwt token
Register the custom filter inside the config file

Advance features of Postman

Inheriting JWT token from Parent
Adding JWT token automatically to all requests
Finding the Postman documentation

Deploying the application to Heroku

Create repository in Github and push the code
Create app inside heroku and provision the postgresql database
Deploy the app to Heroku
Test the production app

Deploying the application to AWS

Create RDS Service inside AWS
Connect to AWS MySQL database from MySQL workbench
Configure the datasource and create a executable Jar
Deploy the Spring Boot application to Elastic Beanstalk

Screenshots

Build Production Ready REST API in Spring Boot - Expense App - Screenshot_01Build Production Ready REST API in Spring Boot - Expense App - Screenshot_02Build Production Ready REST API in Spring Boot - Expense App - Screenshot_03Build Production Ready REST API in Spring Boot - Expense App - Screenshot_04

Reviews

Amit
August 30, 2023
almost all the basic concepts is best explained. but Spring security implementation video is outdated, but i managed to learn spring security 6 with little efforts. and JWT. you should create a separate package for jwt, so concept can be learned more better. Plz update this course for latest springboot version.
Sai
January 9, 2023
The person is not responding to Q&A. And some of the modules are outdated and he didn't mention anything about the env variables setup in the project. So, if we follow the steps provided in the docker module it is waste of time. He simply moved from sts to IntelliJ ide to avoid mvn commands. This is the first course from Udemy that I felt a total of time.
AHMED
December 22, 2022
Learning Spring Boot Rest API has been an uphill task. I have gone through a lot of resources and videos. However, I didn't have a headway. Unitl I was privileged to find you . It has been a breakthough. Thank you for the good work you have done. This couse made me fulfilled. cheers!!!.
Sandeepkumar
December 22, 2022
Best Course, really go for it blindly, he teach us so good...just dont think 100% recommended courses .Thank you Bhushan ,please bring more courses on fullstack with Rest Api+Angular..please
Hüseyin
November 23, 2022
Harika. İleri seviye bir Java kursu. Sahte ileri değil gerçek ileri seviye. or Fantastic. An advanced Java course. Real advanced, not fake advanced.
Satyam
November 4, 2022
Overall it was a course I am happy to take and grow. Pro :: Api implementation and approach is clear and easy to follow for most part.Each step is explaiined clearly and Q&A is answered. Cons :: Latest methodology is not used,kind of old.No use of DTO class/lambda functions within course. Jwt portion explaination is not very clear.
Hardie
August 11, 2022
Overall the course is Average/Good. However: The course is for applying the knowledge of Spring Boot (and Data JPA) into a project, not to learn it. So it's better to gain an understanding of Spring Boot before taking this course. However if you know about Spring Boot and want to apply your skills on a project, then it's good to proceed with the course. WebSecurityConfigurerAdapter in Spring Security section is deprecated, faced some difficulty when trying to implement the updated version. It needs to be updated. Section related to Creating REST APIs with MongoDB are not well designed (i.e. skipping implementing the Business Layer at the beginning and refactoring the code at later videos) and there's no explanation as to what needs to be different than when working with relational DBs, or any other explanation.
Rajesh
July 29, 2022
Overall Great course, and The instructor is very good his explanations are very clear and easy to follow. thank you
Pradeep
July 14, 2022
if you are first time working with spring framework with this course, you would get confused a lot. Many places the same name has been used for entity and model, so it becomes very confusing what is what. A better way could have been to explain the underlying architecture first, why JPA, why hibernate, why DTO, why Service, and then start. Just showing a few code snippets and assuming folks would have understood, may not be good for a beginner.
Jhonathan
June 4, 2022
very good, but in my case I did it with gradle and it failed on heroku BUILD SUCCESSFUL in 12s 5 actionable tasks: 5 executed -----> Discovering process types Procfile declares types -> (none) Default types for buildpack -> web -----> Compressing... Done: 127.4M -----> Launching... Released v9 https://jmm-expnse-manager-api.herokuapp.com/ deployed to Heroku
Alex
May 27, 2022
Everything is clear and helpful. A little bit unusual that the code is not uploaded to Github. But we can download it from lessons, and it's working, no bugs (and that's most important).
Raimi
May 5, 2022
This is an awesome course that has exceeded my expectations. The tutor is very knowledgeable about the subject, his explanations are very clear and easy to follow. The tutor responds very quickly to student's questions unlike many other courses, this is super amazing !
Laxman
April 2, 2022
One of the best RESP API course in Udemy. Knowledgeable instructor. He knows what he is talking about and explains it clearly. Replies to any questions. Just Amazing course!!!!
sridhar.A.T
March 15, 2022
One of the best course for beginners for those who are interested in learn to spring boot and the instructor is reply to your question within few hours.
Amanuel
January 25, 2022
Bushan is one of the best lecturers I had in Udemy. Also once I had questions, Bushan responded to me with in few minutes. I am so glad I was able to take this class. I highly recommend others to attend this course. I hope Bushan will come with a Part 2 course.

Charts

Price

Build Production Ready REST API in Spring Boot - Expense App - Price chart

Rating

Build Production Ready REST API in Spring Boot - Expense App - Ratings chart

Enrollment distribution

Build Production Ready REST API in Spring Boot - Expense App - Distribution chart
4046252
udemy ID
5/13/2021
course created date
1/14/2022
course indexed date
Bot
course submited by