Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

Prerequisite:

=============

#Core java (oops, package, exception, lambda, stream api etc)

#Basics of Spring Framework (Spring Core (DI), JPA and MVC)

#Spring Boot Basics

#Basics of MySQL Database

#STS IDE

------------------------------------------------------------------------------------------------------------------------------------

How to get maximum from this course?

====================================

Code with me............

------------------------------------------------------------------------------------------------------------------------------------

>>>>>>>>>>>>......

Rest Architecture (Client-Server Architecture):

#What is Client-Server Architecture?


#What is REST (Representational (Format) State (Data) Transfer (Transfer data between parties))?

# Ans:

It is software architectural style created by Roy Fielding in 2000 to guide the design of architecture
for the web.

------------------------------------------------------------------------------------------------------------------------------------

REST Guidelines (REST Architectural Constraints):

=======================================

#Client Server Architecture --- Both Client and Server should be independent

#Stateless --- Server should not store any request data

#Cacheable --- Response Data which is needed frequently, should be stored by client using cache

#Layered System --- Backend API Architecture should be layered (to achieve scalability and load
balancing)

#Uniform Interface --- Uniform Architecture, Client and Server interaction they should be in unified
way (we will be able to decouple and simplify architecture)

#Code on Demand (Optional) --- On Runtime client can download code from server and execute

------------------------------------------------------------------------------------------------------------------------------------

REST Concepts:

=============

# Resource

# Sub-resource

# URI (Uniform Resource Identifier)

# Http Methods

# Http Response Codes

1] Resource: Anything that we want to expose to outside world, through our application.

2] URI: URI is used to identify the resource.

3] Sub-resource: Student ->Laptops (Sub resource can’t exist without resource)

4] Http Request Methods: HTTP defines a set of request methods to indicate the desired action to
be performed for a given resource.
5] Http Response Codes: HTTP response status codes indicate whether a specific HTTP request has
been successfully completed
What we are going to build: Client Requirement

Client wants blogging application where he/she can write blogs and articles.

User can comment on the blogs/article.

We have to build simple Blogging Application:-

 User should create, update, delete and list posts.


 User should add, update, delete comments on posts.
 Categories the posts according to categories.
 New user should able to Register on our application.
 User should able to login to our application.
 Post include one picture too.

What we are going to build: Some technical terms.

 Proper Login and Register API.


 Posts API includes Pagination and Sorting.
 Proper user input validation handling.
 Proper exception handling.
 Role based authentication-role based security with apis.
 JWT based authentication.
 Document all rest apis so that consumer can easy understand.
 Deploy the backend application on any cloud platform.

What are the technologies and tools we are going use?

 Framework: Spring Boot Java Framework.


 Java 8+ (Language)
 Maven (Build Tool)
 STS (IDE)
 Apache Tomcat (Server)
 Spring core, Spring security (jwt), Spring data JPA (Hibernate) etc.
 MySQL Database.
 Postman Rest Client (API testing)
 Swagger (For Documentation)
 AWS-EC2 (Deploy)
Resources for Blogging Application

User

Category

Post (Most imp resource)

Comment

Note: We have to create API for managing above resources.


Best architecture while using Spring Boot for backend.

We are using Layered Architecture (Best Architecture type in our knowledge)


Software Installation:

How to install software for our project:

Java 8+

MySQL

Spring Tool Suite

How database structure will look for our project:

https://drive.google.com/file/d/1oVfb0Nk8Ma86O33FYFdM3s-SxT2P-t0Q/view?usp=sharing

You might also like