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…
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