Api First Engineering With Spring Boot

Posted By: ELK1nG

Api First Engineering With Spring Boot
Published 3/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 6.37 GB | Duration: 12h 5m

Learn Industry Best Practices to Develop First Class APIs for your Customers

What you'll learn

Build High Quality RESTful APIs and API Documentat

Learn What is API First Engineering and Why its Important

How to Leverage OpenAPI as the Single Source of Truth

Use OpenAPI Code Generation to Generate Java Code

Use Redocly for CI Builds of your OpenAPI Specification and Documentat

Requirements

Should be familiar with Spring Boot and Spring MVC

Basic Java Development Skills and Able to Use Maven

Working Knowledge of OpenAPI

Description

Take a comprehensive dive into the world of API First development using Spring 6 and Spring Boot 3. This extensive course covers the latest practices and tools for designing, building, and testing robust APIs following industry best practices.You'll begin by understanding the foundational concepts of API-first development and its benefits for organizations. The course then guides you through the practical implementation of an API using OpenAPI specifications, domain-driven design principles, and code generation from OpenAPI specifications.Throughout the course, you'll explore a wide range of topics, including:Defining APIs using the OpenAPI specification and tools like RedoclyUsing Redocly to establish CI/CD builds for your OpenAPI Specification and Redoc API DocumentationApplying domain-driven design principles for effective API designGenerating code from OpenAPI specifications using Maven with OpenAPI Code GeneratorDeveloping Spring Boot and SpringMVC to implementing API endpointsTesting APIs with Spring MockMVC and incorporate request validation to your OpenAPI SpecificationImplementing create, update, patch, and delete operations for APIsObject-relational mapping with JPA, HibernateUsing MapStruct for efficient object mapping and type transformationEnforcing data validation and constraints with JPA and Java Bean ValidationHandling standardized problems and errors with libraries like Zalando ProblemGeneration of Spring Boot API clients and using clients with integration testingThroughout the course, you'll work on a real-world e-commerce API project, applying the concepts and best practices learned in each section. By the end of this course, you'll have a deep understanding of API-first development using Spring 6 and Spring Boot 3 with OpenAPI, enabling you to design, build, and test robust APIs that adhere to industry standards.This course is a master course in developing high quality world class API products for your customers. Enroll now and elevate your skills in API development with Spring!

Overview

Section 1: Introduction

Lecture 1 Course Introduction

Lecture 2 Instructor Introduction

Lecture 3 Getting the Most Out of Your Course

Lecture 4 Setting Up Your Development Environment

Lecture 5 Is Your IDE Free Like A Puppy?

Lecture 6 Free 120 Day IntelliJ Ultimate Trial

Lecture 7 Course Slack Room - Chat with Your Instructor and Other Students

Lecture 8 Github Workflow

Section 2: What is API First?

Lecture 9 Introduction

Lecture 10 Defining API First

Lecture 11 API First for Organizations

Lecture 12 API First Best Practices

Section 3: OpenAPI API Documentation

Lecture 13 Introduction

Lecture 14 Introduction to OpenAPI & Redocly

Lecture 15 Create API Documentation Repository

Lecture 16 GitHub Dependbot Updates

Lecture 17 Github Development Branch

Lecture 18 Add to Redocly API Registry

Lecture 19 Customize API Specification

Section 4: Domain Driven Design

Lecture 20 Introduction

Lecture 21 RESTFul API Design

Lecture 22 Introduction to Domain Driven Design

Lecture 23 Application Design Overview

Lecture 24 Add List Cutomers Operation

Lecture 25 Complete Customer Schema

Lecture 26 Add Get Customer By Id Operation

Lecture 27 Add Order Get Operations

Lecture 28 Create Order Schema

Section 5: Using OpenAPI Schema Attributes

Lecture 29 Introduction

Lecture 30 Add Schema Constraints to Customer

Lecture 31 Add Required Properties to Customer

Lecture 32 Add Examples to Customer

Lecture 33 Define Create Customer Endpoint

Lecture 34 Mark Nullable Properties on Customer

Lecture 35 Refactor DateTime to Common Object

Section 6: OpenAPI Code Generation with Maven

Lecture 36 Introduction

Lecture 37 Hexagonal Architecture

Lecture 38 Create New Maven Project

Lecture 39 Create API Module and OpenAPI Code Generation

Lecture 40 Redocly Security Configuration

Lecture 41 Code Generation Configuration

Lecture 42 Add Maven Dependencies

Lecture 43 Enable Bean Validation

Lecture 44 Remove JsonNullable

Lecture 45 Add Project Lombok

Lecture 46 Update Dimensions to Use Integer

Section 7: Spring Boot Server

Lecture 47 Introduction

Lecture 48 Add Spring Boot Module

Lecture 49 Add API Module Dependency

Lecture 50 Create Customer Repository

Lecture 51 Initialize Customer Data

Lecture 52 Create List Customer Endpoint

Lecture 53 Create Get Customer by Id Endpoint

Section 8: Testing With Spring MockMVC

Lecture 54 Introduction

Lecture 55 Create Test for List Customers

Lecture 56 Test Get Customer by Id

Lecture 57 Swagger Request Validator Dependencies

Lecture 58 Swagger Request Validator With MockMVC

Section 9: Create Operations

Lecture 59 Introduction

Lecture 60 Create Product API Specification

Lecture 61 Implement Create Product API

Lecture 62 Add Create Order to OpenAPI Specification

Lecture 63 Implement Create Order API

Lecture 64 Fix Failing Order Tests

Lecture 65 Refactor OpenAPI Schema

Section 10: Object Relational Mapping

Lecture 66 Introduction

Lecture 67 ORM Overview

Lecture 68 Refactor to Use DTO Naming

Lecture 69 Maven Dependencies

Lecture 70 Customer Entity

Lecture 71 Embedded Entities

Lecture 72 One to One Relationships

Lecture 73 One to Many Relationships

Lecture 74 Audit Timestamps

Lecture 75 Many to Many Relationships

Lecture 76 Create Order Entity

Section 11: Using MapStruct Mappers

Lecture 77 Introduction

Lecture 78 MapStruct Introduction

Lecture 79 Maven Dependencies and Configuration

Lecture 80 Customer DTO Mapper

Lecture 81 Refactor Repositories

Lecture 82 Testing Mapping and Persistence

Lecture 83 Product Mapper

Lecture 84 Refactor Product Create Endpoint

Lecture 85 Refactor Product List and Get Service

Lecture 86 Order Mapper Implementation

Lecture 87 Fix Selected Payment Method

Section 12: JPA Constraints

Lecture 88 Validation Constraints Overview

Lecture 89 Product Constraints

Section 13: Update Operations

Lecture 90 Update OpenAPI Specification for Product Update

Lecture 91 Image Persistance Fix

Lecture 92 Create Image Mapper

Lecture 93 Implement Product to ProductUpdateDto Mapper

Lecture 94 Implement Update Product Service

Lecture 95 Implement Product Update API Endpoint

Lecture 96 Update OpenAPI Specification for Order Update

Lecture 97 Create Order Update Mapper

Lecture 98 Implement Order Update Endpoint

Section 14: Patch Operations

Lecture 99 Update OpenAPI for Product Patch

Lecture 100 Implement ProductPatchDTO to Product Mapper

Lecture 101 Implement Product Patch Endpoint

Lecture 102 Refactor UUID parameters to Common Component in OA3

Lecture 103 Refactor UUID Id to Common Component in OA3

Section 15: Delete Operations

Lecture 104 Add Delete Customer to OpenAPI Specification

Lecture 105 Implement Delete Customer

Lecture 106 Return 404 on Delete if Id Not Found

Section 16: Problem Handling

Lecture 107 Introduction

Lecture 108 Get Customer Not Found

Lecture 109 Update Customer Not Found

Lecture 110 409 Conflict on Database Constraint Violations With Delete

Lecture 111 409 Conflict on Customer Delete Operations

Lecture 112 Spring MockMVC Request Validator

Lecture 113 Prevent Delete of Product if Orders Exist

Section 17: Standardized Problem Handling

Lecture 114 Introduction to Zalando Problem Library

Lecture 115 Add Problem Starter to Project

Lecture 116 Zalando Logbook for Spring MVC

Lecture 117 Update Delete Customer

Lecture 118 Refactor 404 Operations to Common Component

Lecture 119 Problem Configuration for Constraint Violations

Lecture 120 Refactor Not Found Exception

Lecture 121 Test Bad Request

Section 18: Spring Boot API Client

Lecture 122 Overview of API Client

Lecture 123 Refactor Module Structure of Maven Product

Lecture 124 Move Code Gen Configuration to Parent

Lecture 125 Configure Spring Boot Plugin for Integration Test

Spring Developers Responsible for Building Customer Facing APis,Developers Seeking to Build High Quality APIs,QA Engineers Wishing to Improve API Code Quality,API Product Owners Responsible for the Delivery of Customer Facing APIs