Kotlin Spring Boot Api Design First With Spring Security - Printable Version +- Softwarez.Info - Software's World! (https://softwarez.info) +-- Forum: Library Zone (https://softwarez.info/Forum-Library-Zone) +--- Forum: Video Tutorials (https://softwarez.info/Forum-Video-Tutorials) +--- Thread: Kotlin Spring Boot Api Design First With Spring Security (/Thread-Kotlin-Spring-Boot-Api-Design-First-With-Spring-Security--688671) |
Kotlin Spring Boot Api Design First With Spring Security - AD-TEAM - 11-24-2024 Kotlin Spring Boot Api Design First With Spring Security Published 10/2024 MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz Language: English | Size: 13.41 GB | Duration: 28h 18m API design first backend for grocery shopping with user authorisation and authentication for an RESTful API What you'll learn Learn how to quickly design the database schema by using online tools Learn how to set up a local dev environment with a Postgres Docker Container and connect it with your IDE Learn how to create an API First Design backend Learn in a practical way Spring Security by authorisation and authentication with user sign up via an SMTP service Learn how to implement an RESTful grocery shopping API Learn how to properly write Unit & Integration Tests for your backend Learn how to generate collections by using an YAML file and test your endpoints manually with Postman Requirements Internet connection Docker Desktop (free version) Postman (free version) IDE (I recommend IntelliJ, but VS Code is also fine) A bit of Kotlin and Spring Boot experience Description Unlock the power of Kotlin and Spring Boot to build robust, scalable backend systems with an API-first approach. In this comprehensive course, you will learn how to design, develop, and secure a RESTful API tailored for grocery shopping applications.Starting with the foundational concepts, you'll dive deep into API design using YAML files, where you'll define your endpoints and Data Transfer Objects (DTOs) before writing any backend code. This approach ensures a clear, well-documented API that is consistent, easy to maintain, and ready for integration from the get-go.What You'll Learn:API-First Design: Master the principles of API-first development by defining your endpoints and DTOs in YAML. Learn how this approach can streamline your development process and improve collaboration with frontend teams.Kotlin with Spring Boot: Harness the full potential of Kotlin, a modern programming language, alongside Spring Boot, a powerful framework, to develop your backend logic. We'll cover everything from setting up your project to implementing business logic.Building RESTful APIs: Create a feature-rich RESTful API for a grocery shopping application. You'll build endpoints for product browsing, shopping cart management, order processing, and more.User Authentication and Authorization: Implement robust security features using Spring Security and JWT (JSON Web Tokens). Learn how to handle user sign-up, sign-in, and role-based access control to protect your API.Database Integration: Connect your API to a database and manage data persistence effectively. You'll work with Kotlin data classes, JPA (Java Persistence API), and Hibernate to interact with your data layer.Testing and Validation: Ensure your API is reliable and bug-free by writing comprehensive unit and integration tests. Validate inputs and handle errors gracefully to provide a seamless user experience.Deployment and Best Practices: Deploy your Spring Boot application to production environments, and learn best practices for maintaining and scaling your API.Who Should Enroll:Aspiring Backend Developers: If you're looking to specialize in backend development, this course will give you the essential skills and knowledge to build production-ready APIs using Kotlin and Spring Boot.Experienced Developers: For those already familiar with backend development, this course offers an in-depth look at API-first design and security best practices, enhancing your current skill set.Full-Stack Developers: If you work on both frontend and backend, this course will help you streamline the backend side of your projects, making integration with frontend components smoother and more efficient.Why This Course?Hands-On Learning: Gain practical experience by building a fully functional grocery shopping API from start to finish.Expert Instruction: Learn from an experienced backend developer with a deep understanding of Kotlin and Spring Boot.Real-World Application: The course is designed with real-world scenarios in mind, ensuring you gain skills that are directly applicable in the job market.By the end of this course, you'll have the confidence to design, develop, and secure RESTful APIs with an API-first approach, using Kotlin and Spring Boot. Whether you're building your own projects or contributing to large-scale applications, this course will equip you with the tools you need to succeed.Enroll today and start your journey to becoming a proficient backend developer! Overview Section 1: Introduction Lecture 1 Introduction Section 2: Database schema design Lecture 2 Start with the database schema Lecture 3 Finish the database schema Section 3: Set up your local dev database Lecture 4 Create a new docker network and container Lecture 5 Create the groceries database Lecture 6 Summary about the last commands Section 4: Set up Kotlin Spring Boot project Lecture 7 Set up your IDE & connect to Postgres Lecture 8 Commit for .gitignore and rest of project Lecture 9 Dependencies in build.gradle.kts Part 1 Lecture 10 Dependencies in build.gradle.kts Part 2 Lecture 11 Start to set up the application.yml file Lecture 12 Finish set up of application.yml file Lecture 13 Creating a local .env file Lecture 14 Explanation of the Spring Logs Lecture 15 First interaction with the open-api.yml file Lecture 16 Explaining the branches of the project Section 5: The error package Lecture 17 The API error class Lecture 18 Start to implement GlobalExceptionHandler Lecture 19 Implement all custom exception classes Lecture 20 Start to group the exception classes Lecture 21 Finish error package Section 6: The user package Lecture 22 Start to implement user entity Lecture 23 Inherit from UserDetails interface Lecture 24 Set one to one relationship to verification token Lecture 25 Set one to many relationship to shopping list Lecture 26 Create the user repository Lecture 27 Create an interface for the user service Lecture 28 Design your first endpoint in YAML Lecture 29 Design your first data transfer object in YAML Lecture 30 Design other PATCH endpoints in YAML for user resource Lecture 31 Finish designing all endpoints and DTOs for user resource Lecture 32 Generate code for user resource and DTOs Lecture 33 Create a mapper for an entity to DTO Lecture 34 Start implementation of user service Lecture 35 Implement the authentication config class Lecture 36 Define an interface for signed-in user session Lecture 37 Implement change password logic for user Lecture 38 Finish implementation of user service Lecture 39 Implement user controller Lecture 40 Generate enum classes Lecture 41 Start to set up the integration tests for user repository Lecture 42 First integration tests for finding user by email Lecture 43 Finish the integration tests for user repository Lecture 44 User mapper unit test Lecture 45 Start with adding fields for user service unit tests Lecture 46 Unit test for change user email Lecture 47 Unit test for trigger invalid email format exception Lecture 48 More unit tests for bad request exception regarding email Lecture 49 Unit test for change user password Lecture 50 Triggering password mismatch exception tests Lecture 51 Finish unit tests for user service Section 7: The auth package Lecture 52 Create the repository for verification token Lecture 53 Implement client session service Lecture 54 Generate JWT secret key Lecture 55 Implement logic for generating JWT keys Lecture 56 Extract username from JWT token Lecture 57 Finish implementing JWT service Lecture 58 Setup SMTP service with Brevo Lecture 59 Start implementing email service Lecture 60 Implement logic for send emails Lecture 61 Finish implementation of email service Lecture 62 Start to define auth endpoints Lecture 63 Define first DTOs for auth endpoints Lecture 64 Define verify user and sign-in endpoints Lecture 65 Finish defining auth endpoints Lecture 66 Create mapper for register request to user entity Lecture 67 Start implementing account management service Lecture 68 Implement user sign-up Lecture 69 Implement verify user Lecture 70 Implement sign-in user Lecture 71 Implement reset user password Lecture 72 Start implementing the filter for JWT Lecture 73 Implement first request filter Lecture 74 The auth controller Lecture 75 Start implementing the security config for the API Lecture 76 Finish implementing security config for API Lecture 77 Fix JWT filter bug Lecture 78 Start testing endpoints with Postman Lecture 79 Test remaining endpoints in Postman Lecture 80 Integration test for verification token repo Lecture 81 Unit test for sign-up mapper Lecture 82 Unit tests for JWT key creation Lecture 83 Preparing to write unit tests for account management service Lecture 84 Unit test for successful user sign-up Lecture 85 Unit tests for sign-up exceptions Lecture 86 Unit test verify user for success case Lecture 87 Unit test verify user exception cases Lecture 88 Unit test verify for expired verification token Lecture 89 Unit test sign-in for authentication response Lecture 90 Unit test sign-in exceptions cases Lecture 91 Unit tests for reset password Lecture 92 Set up client session service test class Lecture 93 Unit tests for client sessions methods for the success cases Lecture 94 Unit tests for client sessions methods for the exception cases Lecture 95 Start unit tests for email service Lecture 96 Finish unit tests for email service Lecture 97 Set up the jwt service test class Lecture 98 First unit test for jwt service Lecture 99 Unit test for exception case and is token valid logic of jwt service class Lecture 100 Finish unit tests for jwt service Lecture 101 Improve unit tests for email service Lecture 102 Set up integration test for authentication controller Lecture 103 Integration test for sign-up endpoint Lecture 104 Finish integration tests for authentication controller Lecture 105 Start to setup integration tests for user controller Lecture 106 Integration test for change email endpoint for user controller Lecture 107 More integration tests for user controller endpoints Lecture 108 Finish integrations tests for user controller Section 8: The config package Lecture 109 Short explanation of the config package Section 9: The retail package Lecture 110 Start to design the endpoints for shopping list Lecture 111 Start to define DTOs for shopping list endpoints Lecture 112 More DTOs to define Lecture 113 Define more DTOs for shopping list item and supermarket Lecture 114 Define new endpoints for fetching and deleting a specific shopping list Lecture 115 Define patch endpoint for shopping list by id plus the DTOs Lecture 116 Define a new endpoint for GET and POST requests for list items Lecture 117 Define a new endpoint for GET and DELETE and PATCH for a specific list item Lecture 118 Define the DTOs for updating a list item Lecture 119 Define two more endpoints for grocery item Lecture 120 Create new entity and modify existing one Lecture 121 Create remaining entities Lecture 122 Implement business logic related handling supermarket Lecture 123 Start to implement business logic for grocery item Lecture 124 Finish implementing the logic for grocery item service Lecture 125 Create repo and mapper for shopping list item Lecture 126 Start to implement shopping list item service Lecture 127 Finish implementing the shopping list item service Lecture 128 Implement repository and mapper for shopping list Lecture 129 Define the methods for shopping list service Lecture 130 Start to implement shopping list service Lecture 131 Finish implementing helper methods for shopping list service Lecture 132 Implement methods for creating and fetching a specific shopping list Lecture 133 Implement get shopping lists method Lecture 134 Implement update and delete methods for shopping list service Lecture 135 Implement methods for grocery item and shopping list item Lecture 136 Finish implementing shopping list service Lecture 137 Implement the grocery item controller Lecture 138 Implement shopping list item controller Lecture 139 Fix error in shopping list item controller Lecture 140 Implement shopping list controller Lecture 141 Integration Tests for grocery item repository Lecture 142 Integration Tests for supermarket repository Lecture 143 Integration Tests for shopping list item Lecture 144 Setup class for shopping list repository integration tests Lecture 145 Write the first integration tests for shopping list repository Lecture 146 Finish integration tests for shopping list repository Lecture 147 Unit Tests for grocery item mapper Lecture 148 Finish unit tests for remaining mapper classes Lecture 149 Unit Tests for supermarket service Lecture 150 Start with unit tests for grocery item service Lecture 151 More unit tests for grocery item service Lecture 152 Finish unit tests for grocery item service Lecture 153 Start writing unit tests for shopping list item service Lecture 154 Unit Tests for deleting list items in shopping list item service Lecture 155 Unit Test for creating a list item in shopping list item service Lecture 156 Finish unit tests for shopping list item service Lecture 157 Start setting up shopping list service Lecture 158 First unit test for shopping list service Lecture 159 Unit Test exception for creating a shopping list and fetching a shopping list Lecture 160 Unit Tests for fetching a single and multiple shopping lists Lecture 161 Finalise unit tests for fetching multiple shopping lists Lecture 162 Start unit testing updating a shopping list Lecture 163 Unit Test update and delete shopping list Lecture 164 Unit Test fetching a single grocery item in shopping list service Lecture 165 Unit Test updating a grocery item and fetch list items in shopping list service Lecture 166 Unit Tests for get shopping list item Lecture 167 Unit Test create shopping list item response Lecture 168 Unit Tests for deleting list item in shopping list service Lecture 169 Finalise unit tests in shopping list service Lecture 170 Setup integration test for grocery item controller Lecture 171 First integration test for update grocery item Lecture 172 Finish integration tests for grocery item controller Lecture 173 Start with the first integration test for shopping list item controller Lecture 174 Integration tests for delete and fetch specific list item Lecture 175 Finish integration tests for shopping list item controller Lecture 176 Start writing first integration test for shopping list controller Lecture 177 Integration Tests for deleting and fetching a specific shopping list Lecture 178 Finalise integration tests for shopping list controller Section 10: Testing endpoints in Postman Lecture 179 Insert supermarket entries into database Lecture 180 Generate new Postman collection Lecture 181 Manually test the grocery-item-resource endpoints Lecture 182 Manually test the shopping-list-item-resource endpoints Lecture 183 Manually test the shopping-list-resource endpoints Section 11: Outro Lecture 184 Summary and improvement ideas Beginners and intermediate software developers |