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