Spring Framework and REST API Development

This course introduces the Spring Framework and how to build RESTful APIs. You will learn the core concepts of Spring, including dependency injection and inversion of control, and how to secure your applications using Spring Security with JWT. You will also practice building and consuming APIs, handling exceptions, and managing data access with MyBatis.

Objective

  • Learn the basics of Spring Framework and Spring Boot.
  • Understand how to create RESTful APIs with Spring.
  • Implement security in web applications using JWT.
  • Use MyBatis for data access and manipulation.
  • Develop and deploy a mini REST API project.

Curriculum

Web Development

  • What is a URL?
  • HTTP Request Methods
  • HTTP Response Status
  • Three-tier Architecture
  • Frontend Web Frameworks vs. Backend Web Frameworks
  • Introduction to Spring
  • Spring Framework vs. Spring Boot
  • Introduction to API
  • HTTP Client
  • Web Servers

REST API (1)

  • Spring Boot
  • Apache Maven
  • Basic OpenAPI Documentation
  • Basic REST Controller
  • Mapping Requests
  • Mapping Responses
  • application.properties

Spring Core Technologies

  • What is Inversion of Control?
  • Benefits of using Inversion of Control
  • What is Dependency Injection?
  • What is Spring IoC Container?
  • Spring Bean/Component?
  • Types of dependency injection

Data Access with MyBatis

  • Introduction to MyBatis
  • Data Manipulation
  • Relational Mapping with MyBatis
  • SQL Builder
  • Mapper Annotations

REST API (2)

  • Additional Tools
  • Exception Handling
  • CORS Configuration

Spring Security: Basic Authentication

  • Authorization vs. Authentication
  • In-Memory Authentication
  • Database Authentication
  • Swagger Configuration

Spring Security: JWT Authentication

  • Anatomy of a JWT
  • Implementing JWT Authentication
  • Working with JWTs

File Uploading and Serving Static Resources

  • Upload a file to a REST Controller
  • Serve static HTML pages in Spring Boot

Thymeleaf Template Engine

  • Template Engine
  • Getting Started with Dependencies and configuration and more

Mini Project

  • Create a basic REST API