Build Production Ready REST API in Spring Boot Expense App

Learn building production ready REST APIs in Spring Boot, JPA, Spring Security, JWT, MySQL and Deploy to AWS, Docker
Build Production Ready REST API in Spring Boot Expense App
File Size :
8.40 GB
Total length :
17h 33m

Category

Instructor

Bushan Sirgur

Language

Last update

Last updated 10/2022

Ratings

4.1/5

Build Production Ready REST API in Spring Boot Expense App

What you’ll 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…

Build Production Ready REST API in Spring Boot Expense App

Requirements

Basics of Java
Basics of Spring MVC and Spring Boot

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 -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 HerokuNEW 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 DatabaseWhat is Spring Boot?Spring is one of the most popular framework for building Enterprise applicationsSpring 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 mechanismWe will start from absolute scratch -Understanding the REST APIs/RESTful Web ServiceUnderstanding the basics of Spring Boot such as, Spring Boot Starters, @SpringBootApplication annotation, Spring Boot project structureYou will learn the different ways of creating Spring Boot projectYou will learn to create the REST end points You will connect Spring Boot application to MySQL databaseYou will learn to perform the database operations using Data JPAYou will learn validating the REST APIsYou will learn handling the exceptions, custom exceptions, global exceptions and many moreYou will learn adding Pagination and Sorting to REST APIsYou will learn creating REST end points for UsersYou will add Spring Security to the applicationYou will understand the Spring Security default configurationYou will learn configuring multiple users using In-memory authenticationYou will learn creating custom user details and validate user against MySQL databaseYou will learn the Basic AuthenticationYou will create REST end point for LoginYou will learn reading the records only for the logged in userYou will learn Mapping two entities using @OneToMany annotationYou will learn using Lombok annotationsYou will learn adding JWT to the applicationYou will JWT token based authenticationYou will learn the advance features of Postman REST clientYou will learn setup the automation script inside the Postman to test APIsYou will learn basic Git commands to push the code to Github repositoryYou will learn deploying the application to the Production server (Heroku)You will learn dockerize the Spring Boot Application with MySQL database

Overview

Section 1: Demo of the application and Source code

Lecture 1 Demo of the final API (Expense Manager API)

Lecture 2 Additional Resource

Lecture 3 Source Code and PDFs

Section 2: Basics of RESTful Web Services/REST API

Lecture 4 Understand the REST API/RESTful Web Service

Lecture 5 Understand the application architecture

Section 3: Setting up the development environment

Lecture 6 Download and Install Java JDK

Lecture 7 Download and Install the development IDEs

Lecture 8 Download and Install MySQL server and MySQL Workbench

Lecture 9 Download and Install Postman REST client

Lecture 10 Download and Install Git

Section 4: Basics of Spring Boot

Lecture 11 Different ways of creating Spring Boot project

Lecture 12 Create Spring Boot project using Spring Initializer

Lecture 13 Create Spring Boot project in STS

Lecture 14 Understand the Spring Boot project structure

Lecture 15 Understand Spring Boot starters

Lecture 16 Understand @SpringBootApplication annotation

Section 5: Create REST end points for Expense Module

Lecture 17 Create a REST end point for Expenses

Lecture 18 Add all the dependencies to the application

Lecture 19 Create database and table for Expense

Lecture 20 Configure the datasource

Lecture 21 Fetch the list of expenses from the Database

Lecture 22 Write a code to fetch list of expenses from Database

Lecture 23 Create database tables using JPA

Lecture 24 Test the APIs in Postman and Organise the APIs in Postman

Lecture 25 Run the project in command prompt using Maven

Lecture 26 Add the base URL to the API

Lecture 27 Understand passing a parameter in the URL using Path Variable

Lecture 28 Write a code to pass parameter in the URL using Path Variable

Lecture 29 Understand passing a parameter in URL using Query strings

Lecture 30 Write a code to pass parameter in the URL using Query strings

Lecture 31 Retrieve the expense by its id from database

Lecture 32 Delete the expense by its id from database

Lecture 33 Map the HTTP request body to Java object

Lecture 34 Save the expense details to the database

Lecture 35 Update the expense details to the database

Lecture 36 Create a REST end point to update the expense details

Lecture 37 Save the timestamps to the database

Lecture 38 Understanding the HTTP Response Status codes

Lecture 39 Add the HTTP Response Status codes to all REST end points

Section 6: Adding Pagination and Sorting for Expenses Module

Lecture 40 Understanding the Pagination and Sorting

Lecture 41 Add pagination to the Expenses

Lecture 42 Add Sorting to the Expenses

Section 7: Handling Exceptions

Lecture 43 Create a custom Exception for Expenses

Lecture 44 Write a code for Creating Custom Exception

Lecture 45 Refactor the code for Custom Exception

Lecture 46 Handle Bad Request Exception

Lecture 47 Write a code for Handling Bad Request Exception

Lecture 48 Handle Internal Server Error Exception

Lecture 49 Write a code for Handling Internal Server Error

Section 8: Add Validations to the REST APIs

Lecture 50 Understanding the Hibernate Validator and its Annotations

Lecture 51 Add validations to the Expense entity

Lecture 52 Write a code for Adding validations to Expense entity

Lecture 53 Customize the error response

Lecture 54 Add validations to all other fields

Section 9: Filtering the Records

Lecture 55 Development steps for filtering the expenses by category

Lecture 56 Creating a REST end point for filtering the expenses by its category

Lecture 57 Development steps for filtering the expenses by its name

Lecture 58 Creating a REST end point for filtering expenses by its name

Lecture 59 Development steps for filtering the expenses by its dates

Lecture 60 Creating a REST end point for filtering the expenses by its dates

Section 10: Create REST end points for User module

Lecture 61 Development steps for creating a new user

Lecture 62 Write a code for creating a new user

Lecture 63 Add validations to the register api

Lecture 64 Create a custom exception for existing email

Lecture 65 Development steps for reading the user information

Lecture 66 Create a REST end point to read user information

Lecture 67 Development steps for updating the user infomation

Lecture 68 Create a REST end point to update the user information

Lecture 69 Update the record to the database

Lecture 70 Development steps for deleting the user information

Lecture 71 Create a REST end point to delete the user information

Section 11: Configure Spring Security to the Application

Lecture 72 Add spring security to the application

Lecture 73 Quick Update on WebSecurityConfigurerAdapter

Lecture 74 Understand the spring security control flow

Lecture 75 Development steps for customizing the HTTP requests

Lecture 76 Write a code for customizing the HTTP requests

Lecture 77 Development steps for customizing the multiple users

Lecture 78 Write a code for customizing the multiple users

Lecture 79 Development steps for customizing the users (Second approach)

Lecture 80 Write a code for customizing the multiple users (Second approach)

Lecture 81 Development steps for creating custom user details service

Lecture 82 Write a code for creating custom user details

Lecture 83 Encode the password using BCryptPasswordEncoder

Lecture 84 Development steps for creating login REST end poing

Lecture 85 Write a code for creating login REST end point

Section 12: Setup Mapping between Expenses and Users

Lecture 86 Understanding the mapping between User and Expense

Lecture 87 Write a code for mapping between Expense and User

Lecture 88 Get the logged in user details

Lecture 89 Add the user details to expense object just before saving to the database

Lecture 90 Read all the expenses for logged in user

Lecture 91 Read single expense for logged in user

Lecture 92 Delete and Update expense for logged in user

Lecture 93 Update the finder methods for logged in user

Lecture 94 Update the REST end points for user module

Section 13: Add JWT to the application

Lecture 95 Overview of JWT and Its control flow

Lecture 96 Development steps of adding JWT to the application

Lecture 97 Refactor the Login API

Lecture 98 Generate the JWT token

Lecture 99 Update the Jwt util class

Lecture 100 Create a custom filter

Lecture 101 Validate the Jwt token

Lecture 102 Register the custom filter inside the config file

Section 14: Advance features of Postman

Lecture 103 Inheriting JWT token from Parent

Lecture 104 Adding JWT token automatically to all requests

Lecture 105 Finding the Postman documentation

Section 15: Deploying the application to Heroku

Lecture 106 Heroku Update!

Lecture 107 Create repository in Github and push the code

Lecture 108 Create app inside heroku and provision the postgresql database

Lecture 109 Deploy the app to Heroku

Lecture 110 Test the production app

Lecture 111 Connect to Heroku PostgreSQL database from Local machine

Section 16: Deploying the application to AWS

Lecture 112 Create RDS Service inside AWS

Lecture 113 Connect to AWS MySQL database from MySQL workbench

Lecture 114 Configure the datasource and create a executable Jar

Lecture 115 Deploy the Spring Boot application to Elastic Beanstalk

Section 17: Versioning the REST APIs

Lecture 116 Using Context Path

Lecture 117 Using the open REST end point

Lecture 118 Deploy the application changes to AWS

Section 18: Introduction to Docker

Lecture 119 What is Docker?

Lecture 120 Download and Install Docker

Section 19: Dockerize the Java Program

Lecture 121 Create Simple Java Program and Write the Dockerfile

Lecture 122 Build the Docker image and Start the container

Lecture 123 Removing the container and image

Lecture 124 Push the Docker image to Docker hub

Section 20: Dockerize the Spring Boot Application

Lecture 125 Demo of the Spring Boot Application

Lecture 126 Dockerize the Spring Boot Application

Section 21: Dockerize Spring Boot application with MySQL database

Lecture 127 Dockerize the REST API – Part 1

Lecture 128 Dockerize the REST API – Part 2

Lecture 129 Steps to Dockerize the Spring Boot application with MySQL database

Section 22: Create REST API with Spring Boot and MongoDB (NoSQL database)

Lecture 130 Create Spring Boot Project

Lecture 131 Create model class and repository

Lecture 132 Create a REST end point to retrieve all the documents

Lecture 133 Create a REST end point to create new document

Lecture 134 Create a REST end point to retrieve single document

Lecture 135 Create a REST end point to update the existing document

Lecture 136 Create a REST end point to delete the document

Lecture 137 Configure validation

Lecture 138 Create custom exception

Lecture 139 Create service interface and service implementation

Lecture 140 Refactor the controller for saving the document

Lecture 141 Refactor retrieving the list of documents

Lecture 142 Refactor retrieving the single document

Lecture 143 Refactor updating the existing document

Lecture 144 Refactor deleting the document

Lecture 145 Setting up the production database

Lecture 146 Connecting to MongoDB Atlas using MongoDB compass

Lecture 147 Deploy the spring boot app to Heroku cloud

Section 23: Spring Boot REST API Basics [Bonus Content]

Lecture 148 Spring Boot few other concepts

Lecture 149 Create Spring Boot Project

Lecture 150 Create a Controller

Lecture 151 Add dependencies to the spring boot project

Lecture 152 Pass data from client to server using @PathVariable annotation

Lecture 153 Pass data from client to server using @RequestParam annotation

Lecture 154 Organize APIs in Postman

Lecture 155 Map the JSON data to Java object

Lecture 156 HTTP PUT method

Lecture 157 Read property file values using @Value annotation

Lecture 158 Change the server port

Lecture 159 Create executable Jar

Lecture 160 Jackson JsonIgnore and JsonProperty

Lecture 161 Create Service

Lecture 162 Change the Base URL

Lecture 163 Create database and table

Lecture 164 Configure the datasource

Lecture 165 Create an Entity class

Lecture 166 Fetch the records from database

Lecture 167 Save the records to the database

Lecture 168 Get a single record by its id

Lecture 169 Delete a record from database

Lecture 170 Update the record from the database

Lecture 171 Create database tables by JPA

Lecture 172 Create timestamps by JPA

Lecture 173 Column annotation is mandatory?

Lecture 174 Add validation to the REST API

Lecture 175 Customize the validation message

Lecture 176 NotNull vs NotEmpty vs NotBlank annotations

Lecture 177 Change the HTTP status code

Lecture 178 JPA query method or finder method Part 1

Lecture 179 JPA query method or finder method Part 2

Lecture 180 JPA query method or finder method Part 3

Lecture 181 Data JPA Pagination

Lecture 182 Data JPA Sorting

Lecture 183 Data JPA Pagination and Sorting

Lecture 184 JPQL select query in Data JPA

Lecture 185 JPQL delete query in Data JPA

Lecture 186 One to One mapping in Data JPA

Lecture 187 Join query in Data JPA

Lecture 188 JPQL Join query in Data JPA

Lecture 189 One to Many mapping in Data JPA

Lecture 190 One to One Bi-directional in Data JPA

Lecture 191 One to Many Bi-directional in Data JPA

Lecture 192 JPA Native SQL query

Lecture 193 @NamedNativeQuery annotation

Lecture 194 @NamedQuery annotation

Lecture 195 Document APIs using Swagger

Section 24: Written Articles on Spring Boot, Spring Security and Data JPA [Bonus Content]

Lecture 196 Checkout the Spring Boot 100+ written articles

Section 25: My contact details

Lecture 197 Connect with me on social media

Anyone who wants to learn REST API with Spring Boot,Anyone who wants to enhance their skills with Spring Boot and Spring Security

Course Information:

Udemy | English | 17h 33m | 8.40 GB
Created by: Bushan Sirgur

You Can See More Courses in the Developer >> Greetings from CourseDown.com

New Courses

Scroll to Top