
Comprehensive API Design
Learn the principles of API Design First with a focus on planing the endpoints and DTOs in YAML then generating the Kotlin code

Secure User Authentication
Discover how to implement JWT for user sign-up and sign-in, ensuring secure and reliable authentication processes.

Efficient Testing Strategies
Master the art of writing Unit & Integration tests and manual testing with Postman to ensure the quality and functionality of your APIs.
Prerequisite
*) Internet & Computer with Admin rights *) Postman client installed (free version) *) Docker Desktop installed (free version) *) One year experience with Kotlin and Spring Boot
About the course
Unlock the power of Kotlin and Spring Boot to design robust, scalable, and secure APIs with this hands-on course. Dive into an API Design First approach, focusing on creating a grocery shopping list application while mastering essential backend development skills. What You'll Learn: - API Design First Principles: Understand how to design APIs before implementation for better clarity and structure. - User Authentication: Implement secure user sign-up and sign-in functionality with JWT (JSON Web Token) for token-based authentication. - Email Verification: Add an extra layer of security by integrating email verification into the user flow. - Data Management: Work with multiple database tables for a comprehensive grocery shopping list API. - Testing Best Practices: - Write robust Unit and Integration tests to ensure your code is reliable and maintainable. - Test APIs manually using Postman to validate functionality. - Dockerization: Package your Spring Boot application into a Docker container for easy deployment and scalability. This course is perfect for Kotlin developers who want to deepen their Spring Boot knowledge, adopt an API-first mindset, and create production-ready applications with modern development tools and practices. By the end of the course, you'll have a fully functional backend, tested and containerized, ready for deployment. Whether you're an aspiring backend developer or a seasoned programmer looking to enhance your API design skills, this course will set you on the path to success!

7 Day Money-Back-Guarantee -> no questions asked
Within your seven days of inscription just send an email at [email protected] with title refund and I will refund you your money, no questions asked
Course Curriculum
-
1
Introduction
-
2
Database schema design
- Start with the database schema Free preview
-
(Included in full purchase)
Finish the database schema
-
3
Set up local dev database
-
(Included in full purchase)
Create a new Docker network and container
- Create the groceries database Free preview
-
(Included in full purchase)
Summary about the last commands
-
(Included in full purchase)
-
4
Set up the project
- Set up your IDE & connect to Postgres Free preview
-
(Included in full purchase)
Set up the .gitignore file
-
(Included in full purchase)
Dependencies in Gradle Part 1
-
(Included in full purchase)
Dependencies in Gradle Part 2
-
(Included in full purchase)
Start to set up the application YAML file
-
(Included in full purchase)
Finish set up of application YAML
-
(Included in full purchase)
Creating a local environment file
-
(Included in full purchase)
Explanation of the Spring Logs
-
(Included in full purchase)
First interaction with the OpenAPI YAML file
-
(Included in full purchase)
Explaining the branches of the project
-
5
The error package
- The API error class Free preview
-
(Included in full purchase)
Start to implement the global exception handler
-
(Included in full purchase)
Implement all custom exception classes
-
(Included in full purchase)
Group the exception classes
-
(Included in full purchase)
Finish error package
-
6
The user package
- Implement user entity Free preview
-
(Included in full purchase)
The Spring Security interface for user details
-
(Included in full purchase)
One to one relationship to verification token
-
(Included in full purchase)
One to many relationship to shopping list
-
(Included in full purchase)
Create the user repository
-
(Included in full purchase)
The user service interface
-
(Included in full purchase)
Design your first endpoint in YAML
-
(Included in full purchase)
Design your first DTO in YAML
-
(Included in full purchase)
Design other PATCH endpoints in YAML for user resource
-
(Included in full purchase)
Designing all endpoints and DTOs for user resource
-
(Included in full purchase)
Generate code for user resource and DTOs
-
(Included in full purchase)
Create a mapper for entity to DTO
-
(Included in full purchase)
Implementation of user service
-
(Included in full purchase)
Implement the authentication config class
-
(Included in full purchase)
Define an interface for signed-in user session
-
(Included in full purchase)
Implement change password logic for user
-
(Included in full purchase)
Finish implementation of user service
-
(Included in full purchase)
Implement user controller
-
(Included in full purchase)
Generate enum classes
-
(Included in full purchase)
Set up the integration tests for user repository
-
(Included in full purchase)
First integration tests for finding user by email
-
(Included in full purchase)
Finish the integration tests for user repository
-
(Included in full purchase)
Unit Test User Mapper
-
(Included in full purchase)
Add fields for user service unit tests
-
(Included in full purchase)
Unit Test for change user email
-
(Included in full purchase)
Unit Test invalid email format exception
-
(Included in full purchase)
Unit Tests for bad request exception regarding email
-
(Included in full purchase)
Unit Test for change user password
-
(Included in full purchase)
Triggering password mismatch exception tests
-
(Included in full purchase)
Finish unit tests for user service
-
7
The auth package
- Repository for verification token Free preview
-
(Included in full purchase)
Implement client session service
-
(Included in full purchase)
Generate JWT secret key
-
(Included in full purchase)
Implement logic for generating JWT keys
-
(Included in full purchase)
Extract username from JWT token
-
(Included in full purchase)
Finish implementing JWT service
-
(Included in full purchase)
Set up SMTP service with Brevo
-
(Included in full purchase)
Implement email service
-
(Included in full purchase)
Implement logic for send emails
-
(Included in full purchase)
Finish implementation of email service
-
(Included in full purchase)
Define auth endpoints
-
(Included in full purchase)
Define first DTOs for auth endpoints
-
(Included in full purchase)
Define verify user and sign-in endpoints
-
(Included in full purchase)
Finish defining auth endpoints
-
(Included in full purchase)
Mapper for register request to user entity
-
(Included in full purchase)
Implement account management service
-
(Included in full purchase)
Implement user sign-up
-
(Included in full purchase)
Implement verify user
-
(Included in full purchase)
Implement sign-in user
-
(Included in full purchase)
Implement reset user password
-
(Included in full purchase)
Implement the filter for JWT
-
(Included in full purchase)
Implement first request filter
-
(Included in full purchase)
The auth controller
-
(Included in full purchase)
Implement the security config for the API
-
(Included in full purchase)
Finish implementing security config for API
-
(Included in full purchase)
Fix JWT filter bug
-
(Included in full purchase)
Start testing endpoints with Postman
-
(Included in full purchase)
Test remaining endpoints in Postman
-
(Included in full purchase)
Integration Test for verification token repo
-
(Included in full purchase)
Unit Test for sign-up mapper
-
(Included in full purchase)
Unit Tests for JWT key creation
-
(Included in full purchase)
Unit Tests for account management service
-
(Included in full purchase)
Unit Test for successful user sign-up
-
(Included in full purchase)
Unit Tests for sign-up exceptions
-
(Included in full purchase)
Unit Test verify user for success case
-
(Included in full purchase)
Unit Test verify user exception cases
-
(Included in full purchase)
Unit Test verify for expired verification token
-
(Included in full purchase)
Unit Test sign-in for authentication response
-
(Included in full purchase)
Unit Test sign-in exceptions
-
(Included in full purchase)
Unit Tests for reset password
-
(Included in full purchase)
Set up client session service test class
-
(Included in full purchase)
Unit Tests for client sessions methods
-
(Included in full purchase)
Unit tests for client sessions methods for the exception cases
-
(Included in full purchase)
Start Unit Tests for email service
-
(Included in full purchase)
Finish Unit Tests for email service
-
(Included in full purchase)
Set up the JWT service test class
-
(Included in full purchase)
First Unit Test for JWT service
-
(Included in full purchase)
Unit Test for exception case & token valid logic of JWT service class
-
(Included in full purchase)
Finish unit tests for JWT service
-
(Included in full purchase)
Improve Unit Tests for email service
-
(Included in full purchase)
Set up Integration Test for auth controller
-
(Included in full purchase)
Integration Test for sign-up endpoint
-
(Included in full purchase)
Finish Integration Tests for auth controller
-
(Included in full purchase)
Set up Integration Tests for user controller
-
(Included in full purchase)
Integration Test for change email endpoint for user controller
-
(Included in full purchase)
More Integration Tests for user controller endpoints
-
(Included in full purchase)
Finish Integrations Tests for user controller
-
8
The config package
-
(Included in full purchase)
Explanation of the config package
-
(Included in full purchase)
-
9
The retail package
- Start to design the endpoints for shopping list Free preview
-
(Included in full purchase)
Define DTOs for shopping list endpoints
-
(Included in full purchase)
More DTOs to define
-
(Included in full purchase)
Define more DTOs for shopping list item and supermarket
-
(Included in full purchase)
Define new endpoints for fetching and deleting a specific shopping list
-
(Included in full purchase)
Define PATCH endpoint for shopping list by id plus the DTOs
-
(Included in full purchase)
Define a new endpoint for GET and POST requests for list items
-
(Included in full purchase)
Define a new endpoint for GET and DELETE and PATCH for a specific list item
-
(Included in full purchase)
Define the DTOs for updating a list item
-
(Included in full purchase)
Define two more endpoints for grocery item
-
(Included in full purchase)
Create new entity and modify existing one
-
(Included in full purchase)
Create remaining entities
-
(Included in full purchase)
Implement business logic related handling supermarket
-
(Included in full purchase)
Implement business logic for grocery item
-
(Included in full purchase)
Finish implementing the logic for grocery item service
-
(Included in full purchase)
Create repo and mapper for shopping list item
-
(Included in full purchase)
Implement shopping list item service
-
(Included in full purchase)
Finish implementing the shopping list item service
-
(Included in full purchase)
Implement repository and mapper for shopping list
-
(Included in full purchase)
Define the methods for shopping list service
-
(Included in full purchase)
Start to implement shopping list service
-
(Included in full purchase)
Finish implementing helper methods for shopping list service
-
(Included in full purchase)
Implement methods for creating and fetching a specific shopping list
-
(Included in full purchase)
Implement get shopping lists method
-
(Included in full purchase)
Implement update and delete methods for shopping list service
-
(Included in full purchase)
Implement methods for grocery item and shopping list item
-
(Included in full purchase)
Finish implementing shopping list service
-
(Included in full purchase)
Implement the grocery item controller
-
(Included in full purchase)
Implement shopping list item controller
-
(Included in full purchase)
Fix error in shopping list item controller
-
(Included in full purchase)
Implement shopping list controller
-
(Included in full purchase)
Integration Tests for grocery item repository
-
(Included in full purchase)
Integration Tests for supermarket repository
-
(Included in full purchase)
Integration Tests for shopping list item repo
-
(Included in full purchase)
Set up class for shopping list repository integration tests
-
(Included in full purchase)
First integration tests for shopping list repository
-
(Included in full purchase)
Finish integration tests for shopping list repository
-
(Included in full purchase)
Unit Tests for grocery item mapper
-
(Included in full purchase)
Finish unit tests for remaining mapper classes
-
(Included in full purchase)
Unit Tests for supermarket service
-
(Included in full purchase)
Start with unit tests for grocery item service
-
(Included in full purchase)
More unit tests for grocery item service
-
(Included in full purchase)
Finish unit tests for grocery item service
-
(Included in full purchase)
Unit Tests for shopping list item service
-
(Included in full purchase)
Unit Tests for deleting list items in shopping list item service
-
(Included in full purchase)
Unit Test for creating a list item in shopping list item service
-
(Included in full purchase)
Finish unit tests for shopping list item service
-
(Included in full purchase)
Start to set up shopping list service
-
(Included in full purchase)
First unit test for shopping list service
-
(Included in full purchase)
Unit Test exception for creating a shopping list and fetching a shopping list
-
(Included in full purchase)
Unit Tests for fetching a single and multiple shopping lists
-
(Included in full purchase)
Finalise unit tests for fetching multiple shopping lists
-
(Included in full purchase)
Start unit testing updating a shopping list
-
(Included in full purchase)
Unit Test update and delete shopping list
-
(Included in full purchase)
Unit Test fetching a single grocery item in shopping list service
-
(Included in full purchase)
Unit Test updating a grocery item and fetch list items in shopping list service
-
(Included in full purchase)
Unit Tests for get shopping list item
-
(Included in full purchase)
Unit Test create shopping list item response
-
(Included in full purchase)
Unit Tests for deleting list item in shopping list service
-
(Included in full purchase)
Finalise unit tests in shopping list service
-
(Included in full purchase)
Set up integration test for grocery item controller
-
(Included in full purchase)
First integration test for update grocery item
-
(Included in full purchase)
Finish integration tests for grocery item controller
-
(Included in full purchase)
Integration Test for shopping list item controller
-
(Included in full purchase)
Integration Tests for delete and fetch specific list item
-
(Included in full purchase)
Finish integration tests for shopping list item controller
-
(Included in full purchase)
First Integration test for shopping list controller
-
(Included in full purchase)
Integration Tests for deleting and fetching a specific shopping list
-
(Included in full purchase)
Finalise integration tests for shopping list controller
-
10
Testing endpoints in Postman
- Insert supermarket entries into database Free preview
-
(Included in full purchase)
Generate new Postman collection
-
(Included in full purchase)
Manually test the grocery-item-resource endpoints
-
(Included in full purchase)
Manually test the shopping-list-item-resource endpoints
-
(Included in full purchase)
Manually test the shopping-list-resource endpoints
-
11
Outro
-
(Included in full purchase)
Summary and improvement ideas
-
(Included in full purchase)
-
12
Bonus Chapter
-
(Included in full purchase)
Create a Dockerfile
-
(Included in full purchase)
Build a Docker image
-
(Included in full purchase)
Run and test your Docker container
-
(Included in full purchase)
Ready to Elevate Your Backend Skills?
Join the course today and unlock the potential of API design with Kotlin & Spring Boot.
$19.99