Build RESTFUL APIs using Kotlin and Spring Boot

A complete hands on approach to learn the Kotlin language and build Restful APIs using Kotlin SpringBoot.
Build RESTFUL APIs using Kotlin and Spring Boot
File Size :
3.35 GB
Total length :
8h 22m

Category

Instructor

Pragmatic Code School

Language

Last update

11/2022

Ratings

4.3/5

Build RESTFUL APIs using Kotlin and Spring Boot

What you’ll learn

Kotlin Programming Language and its benefits
Write Code using Kotlin Programming Language
Building Applications using Kotlin
Build RestFul Services using SpringBoot and Kotlin
Test Kotlin using JUnit5
Kotlin and Java Interoperability
Integrate Spring Data JPA with Kotlin
Integration testing DB Layer using TestContainers & JUnit5
Unit Testing Functions calls using Mockk Library

Build RESTFUL APIs using Kotlin and Spring Boot

Requirements

Java 11 or Higher is Required
Experience working with any IDE( Intellij, Eclipse)
Experience working with Java
Experience building application using SpringBoot
Gradle or Maven Build tool Experience is must

Description

Kotlin is the Modern, concise and safe programming language and  is one of the popular JVM language in this day and age.It’s also interoperable with Java and other languages, and provides many ways to reuse code between multiple platforms for productive programming.This course will focus on using Kotlin for Server-Side Development using SpringBoot framework. This is a pure hands-on oriented course which covers these two topics:Covers Kotlin Fundamentals thats necessary for Java DevelopersBuild RestFul APIs using SpringBoot and KotlinSection 1: Getting Started With the CourseThis section covers the course objectives and the prerequisites that are needed to make the most out of this course.Section 2: Getting Started with Kotlin Programming LanguageIn this section, I will introduce you to Kotlin Programming Language and why its a powerful language for enterprise development.Introduction to KotlinHow Kotlin Works with the JVM?Section 3: Kotlin FundamentalsIn this section, we will explore the fundamentals of Kotlin.val & var variables in KotlinBasic Types – Int, Long, Double, StringConditionals – If and when blockRanges , Loops while & do-Whilebreak, labels and returnSection 4: Functions in KotlinIn this section, we will learn about functions in Kotlin and different ways of declaring and using themDefining and Invoking Functions Default Value Parameters & Named ArgumentsTop-Level Functions and Top-level PropertiesSection 5: Classes, Interfaces and InheritanceIn this section, we will learn about classes, inheritance and interfaces in detail.Introduction to class – Creating a class and objectsPrimary ConstructorsSecondary Constructorsinitializer code using init blockData ClassesCustom Getters and Setters Inheritance – Extending ClassesInheritance – Override Functions, Variablesobject keyword for creating instance of the classcompanion object KeywordInterfacesInterfaces – Handling Conflicting FunctionsInterfaces – Defining and Overrding VariablesVisibility ModifiersType Checking, Casting and Smart CastEnum classSection 6: Nulls in KotlinIn this section, we will learn about handling nulls in KotlinNullable & Non-Nullable types in KotlinSafe Call(?) , Elvis Operator(?:) & Non Null Assertion(!!) to deal with Null ValuesInvoking or assigning a Nullable Type to a Non-Nullable TypeSection 7: Collections, Arrays & Lamda ExpressionsIn this section, I will introduce you to collections, arrays and lambda expressions in KotlinIntroduction to CollectionsIntroduction to Lamda ExpressionsLambdas and Higher Order FunctionsFilter Operations on Kotlin CollectionsMap Operations on Kotlin CollectionsFlatMap Operations in CollectionsWorking With HashMapsLazy Evaluation of Collections using SequencesNullability in CollectionsSection 8 : Exceptions In KotlinIn this section, I will cover the exceptions in kotlin and the techniques to handle them.Handling Exceptions using try-catchSection 9 : Scope FunctionsIn this section, I will introduce you all to scope functions in Kotlin and its usage.Introduction to Scope Functionsapply & also Scope Functionlet Scope Functionwith & run Scope FunctionSection 10 : Getting Started with Kotlin and Spring BootIn this section, I will explain the overview of the app we are going to build and build a very simple API.Overview of the app & Project SetupBuild a Simple Endpoint – Greeting ControllerConstructor Injection in SpringSetting up different profiles in Spring BootSet up Logging in KotlinSection 11 : Integration/Unit Testing using Junit 5In this section, I will code and explain about the techniques to write different types of test cases using spring boot and Kotlin.Introduction to Automated Tests & Setting up JUnit5Integration Test for ControllerUnit Test for Controller – Using the Mockk Mocking librarySection 12 : Build the Course Catalog ServiceIn this section, we will build the Course Catalog Service to manage the CoursesSet up the Course Entity & CourseDTOCreate CourseRepository & Configure JPA in application.yml fileBuild the POST Endpoint for adding new Course Integration test for the POST endpoint using JUnit5Build the Get Endpoint to retrieve all CoursesIntegration test for the GET endpoint to retrieve all the coursesBuild the Update Endpoint to update a CourseIntegration test for the PUT endpoint using JUnit5Build the DELETE endpoint to delete a CourseSection 13: Unit Testing Controller layer (Web Tier)In this section, we will code and learn about how to write unit tests for the controllerSetting up the Unit Test for the CourseControllerUnit test for the Post Endpoint in CourseControllerUnit test for the GET Endpoint in CourseControllerUnit test for the PUT Endpoint in CourseControllerUnit test for the DELETE Endpoint in CourseControllerSection 14 : Bean Validation using Validators and ControllerAdviceIn this section, we will code and learn the different techniques to apply bean validations and handle exceptions using the ControllerAdvice PatternName and Category as Mandatory using @NotBlank AnnotationImplement Custom Error Handling using ControllerAdvice patternHandle Global RuntimeException using ControllerAdvice PatternSection 15 : Custom JPA queries using Spring Data JPA and DB Layer testing using @DataJpaTestIn this lecture, we will learn about the techniques to write custom JPA queries and the techniques to test the DB layer using the DataJpaTestRetrieve Courses By Name using JPA Query Creation FunctionRetrieve Courses By Name using Native SQL queryTesting Mutliple sets of Data using @Parameterized testSection 16: GET Endpoint to retrieve Courses By Name using @RequestParamIn this section, we will code and learn about the usage of RequestParam in the controller endpoint.Use existing GET endpoint to retrieve Courses by NameWrite Integration test to retrieve course by NameSection 17 : Entity RelationShips using Spring Data JPAIn this section, I will explain the technique to express the relationships in JPA using Entity and Data classes in KotlinAdding Instructor Entity in to the Course Catalog ServiceAdding the relationship in the Entity ClassInstructor Controller to Manage Instructor DataUpdate CourseService to validate Instructor DataFix the CourseController Integration TestsFix the CourseController Unit TestsSection 18 : Integrating with Postgres DBIn this section, we will code and learn to integrate the postgres DB in to the course catalog service.Setting up the Postgres DB and App to interact with PostgresTest the app with Postgres DBSection 19 : Integration Testing using TestContainersIn this section, we will code and learn to integrate the testcontainers to run integration test.Setting Up TestContainers for the Integration TestConfigure @DataJpaTest with TestContainersSection 20 : Java & Kotlin InteroperabilityIn this section, we will code and learn about the interoperability between Java and Kotlin.Invoking Kotlin Code from Java ClassInvoking Java Code from KotlinUseful JVM annotations in KotlinBy the end of this course, you will be comfortable writing code using the Koltin Programming language and Build RestFuL APIs using SpringBoot and Kotlin.

Overview

Section 1: Getting Started with the Course

Lecture 1 Course Introduction

Lecture 2 Prerequisites

Section 2: Course Slides & Source Code

Lecture 3 Course Slides

Lecture 4 Source Code

Section 3: Getting Started with Kotlin Programming Language

Lecture 5 Introduction to Kotlin

Lecture 6 How Kotlin Works with the JVM?

Section 4: Kotlin Fundamentals

Lecture 7 Project Setup

Lecture 8 Hello Kotlin!

Lecture 9 val & var variables in Kotlin

Lecture 10 Basic Types – Int, Long, Double, String

Lecture 11 Conditionals – If and when block

Lecture 12 Ranges & Loops

Lecture 13 while & do-While

Lecture 14 break, labels and return

Section 5: Functions in Kotlin

Lecture 15 Defining and Invoking Functions

Lecture 16 Default Value Parameters & Named Arguments

Lecture 17 Top-Level Functions and Top-level Properties

Section 6: Classes, Interfaces and Inheritance

Lecture 18 Introduction to class – Creating a class and objects

Lecture 19 Primary Constructors

Lecture 20 Secondary Constructors

Lecture 21 initializer code using init block

Lecture 22 Data Classes

Lecture 23 Custom Getters and Setters

Lecture 24 Inheritance – Extending Classes

Lecture 25 Inheritance – Override Functions, Variables

Lecture 26 object keyword for creating instance of the class

Lecture 27 companion object Keyword

Lecture 28 Interfaces

Lecture 29 Interfaces – Handling Conflicting Functions

Lecture 30 Interfaces – Defining and Overrding Variables

Lecture 31 Visibility Modifiers

Lecture 32 Type Checking, Casting and Smart Cast

Lecture 33 Enum class

Section 7: Nulls in Kotlin

Lecture 34 Nullable & Non-Nullable types in Kotlin

Lecture 35 Safe Call(?) ,Elvis Operator(?:),Non Null Assertion(!!) to deal with Null Values

Lecture 36 Invoking or assigning a Nullable Type to a Non-Nullable Type

Section 8: Collections, Arrays & Lamda Expressions

Lecture 37 Introduction to Collections

Lecture 38 Introduction to Lamda Expressions

Lecture 39 Lambdas and Higher Order Functions

Lecture 40 Filter Operations on Kotlin Collections

Lecture 41 Map Operations on Kotlin Collections

Lecture 42 FlatMap Operations in Collections

Lecture 43 Working With HashMaps

Lecture 44 Lazy Evaluation of Collections using Sequences

Lecture 45 Nullability in Collections

Section 9: Exceptions In Kotlin

Lecture 46 Handling Exceptions using try-catch

Section 10: Scope Functions

Lecture 47 Introduction to Scope Functions

Lecture 48 apply & also Scope Function

Lecture 49 let Scope Function

Lecture 50 with & run Scope Function

Section 11: Getting Started with Kotlin and Spring Boot

Lecture 51 Overview of the app & Project Setup

Lecture 52 Build a Simple Endpoint – Greeting Controller

Lecture 53 Constructor Injection in Spring

Lecture 54 Setting up different profiles in Spring Boot

Lecture 55 Set up Logging in Kotlin

Section 12: Integration/Unit Testing using Junit5

Lecture 56 Introduction to Automated Tests & Setting up JUnit5

Lecture 57 Integration Test for Controller

Lecture 58 Unit Test for Controller – Using the Mockk Mocking library

Section 13: Build the Course Catalog Service

Lecture 59 Set up the Course Entity & CourseDTO

Lecture 60 Create CourseRepository & Configure JPA in application.yml file

Lecture 61 Build the POST Endpoint for adding new Course

Lecture 62 Integration test for the POST endpoint using JUnit5

Lecture 63 Build the Get Endpoint to retrieve all Courses

Lecture 64 Integration test for the GET endpoint to retrieve all the courses

Lecture 65 Build the Update Endpoint to update a Course

Lecture 66 Integration test for the PUT endpoint using JUnit5

Lecture 67 Build the DELETE endpoint to delete a Course

Section 14: Unit Testing Controller layer (Web Tier)

Lecture 68 Setting up the Unit Test for the CourseController

Lecture 69 Unit test for the Post Endpoint in CourseController

Lecture 70 Unit test for the GET Endpoint in CourseController

Lecture 71 Unit test for the PUT Endpoint in CourseController

Lecture 72 Unit test for the DELETE Endpoint in CourseController

Section 15: Bean Validation using Validators and ControllerAdvice

Lecture 73 Name and Category as Mandatory using @NotBlank Annotation

Lecture 74 Implement Custom Error Handling using ControllerAdvice pattern

Lecture 75 Handle Global RuntimeException using ControllerAdvice Pattern

Section 16: Custom JPA queries using Spring Data JPA and DB Layer testing using @DataJpaTest

Lecture 76 Retrieve Courses By Name using JPA Query Creation Function

Lecture 77 Retrieve Courses By Name using Native SQL query

Lecture 78 Testing Mutliple sets of Data using @Parameterized test

Section 17: GET Endpoint to retrieve Courses By Name using @RequestParam

Lecture 79 Use existing GET endpoint to retrieve Courses by Name

Lecture 80 Write Integration test to retrieve course by Name

Section 18: Entity RelationShips using Spring Data JPA

Lecture 81 Adding Instructor Entity in to the Course Catalog Service

Lecture 82 Adding the relationship in the Entity Class

Lecture 83 Instructor Controller to Manage Instructor Data

Lecture 84 Update CourseService to validate Instructor Data

Lecture 85 Fix the CourseController Integration Tests

Lecture 86 Fix the CourseController Unit Tests

Section 19: Integrating with Postgres DB

Lecture 87 Setting up the Postgres DB and App to interact with Postgres

Lecture 88 Test the app with Postgres DB

Section 20: Integration Testing using TestContainers

Lecture 89 Setting Up TestContainers for the Integration Test

Lecture 90 Configure @DataJpaTest with TestContainers

Section 21: Java & Kotlin Interoperability

Lecture 91 Invoking Kotlin Code from Java Class

Lecture 92 Invoking Java Code from Kotlin

Lecture 93 Useful JVM annotations in Kotlin

Developers who are interested in learning Kotlin Programming language,Developers who are interested in building applications using Kotlin and SpringBoot,Java developers who would like to learn Kotlin Programming Language

Course Information:

Udemy | English | 8h 22m | 3.35 GB
Created by: Pragmatic Code School

You Can See More Courses in the Developer >> Greetings from CourseDown.com

New Courses

Scroll to Top