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.
Lo que serás capaz de hacer
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 Developers Build RestFul APIs using SpringBoot and Kotlin Section 1: Getting Started With the Course This 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 Language In this section, I will introduce you to Kotlin Programming Language and why its a powerful language for enterprise development. Introduction to Kotlin How Kotlin Works with the JVM? Section 3: Kotlin Fundamentals In this section, we will explore the fundamentals of Kotlin. val & var variables in Kotlin Basic Types - Int, Long, Double, String Conditionals - If and when block Ranges , Loops while & do-While break, labels and return Section 4: Functions in Kotlin In this section, we will learn about functions in Kotlin and different ways of declaring and using them Defining and Invoking Functions Default Value Parameters & Named Arguments Top-Level Functions and Top-level Properties Section 5: Classes, Interfaces and Inheritance In this section, we will learn about classes, inheritance and interfaces in detail. Introduction to class - Creating a class and objects Primary Constructors Secondary Constructors initializer code using init block Data Classes Custom Getters and Setters Inheritance - Extending Classes Inheritance - Override Functions, Variables object keyword for creating instance of the class companion object Keyword Interfaces Interfaces - Handling Conflicting Functions Interfaces - Defining and Overrding Variables Visibility Modifiers Type Checking, Casting and Smart Cast Enum class Section 6: Nulls in Kotlin In this section, we will learn about handling nulls in Kotlin Nullable & Non-Nullable types in Kotlin Safe Call(?) , Elvis Operator(?:) & Non Null Assertion(!!) to deal with Null Values Invoking or assigning a Nullable Type to a Non-Nullable Type Section 7: Collections, Arrays & Lamda Expressions In this section, I will introduce you to collections, arrays and lambda expressions in Kotlin Introduction to Collections Introduction to Lamda Expressions Lambdas and Higher Order Functions Filter Operations on Kotlin Collections Map Operations on Kotlin Collections FlatMap Operations in Collections Working With HashMaps Lazy Evaluation of Collections using Sequences Nullability in Collections Section 8 : Exceptions In Kotlin In this section, I will cover the exceptions in kotlin and the techniques to handle them. Handling Exceptions using try-catch Section 9 : Scope Functions In this section, I will introduce you all to scope functions in Kotlin and its usage. Introduction to Scope Functions apply & also Scope Function let Scope Function with & run Scope Function Section 10 : Getting Started with Kotlin and Spring Boot In 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 Setup Build a Simple Endpoint - Greeting Controller Constructor Injection in Spring Setting up different profiles in Spring Boot Set up Logging in Kotlin Section 11 : Integration/Unit Testing using Junit 5 In 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 JUnit5 Integration Test for Controller Unit Test for Controller - Using the Mockk Mocking library Section 12 : Build the Course Catalog Service In this section, we will build the Course Catalog Service to manage the Courses Set up the Course Entity & CourseDTO Create CourseRepository & Configure JPA in application.yml file Build the POST Endpoint for adding new Course I ntegration test for the POST endpoint using JUnit5 Build the Get Endpoint to retrieve all Courses Integration test for the GET endpoint to retrieve all the courses Build the Update Endpoint to update a Course Integration test for the PUT endpoint using JUnit5 Build the DELETE endpoint to delete a Course Section 13: Unit Testing Controller layer (Web Tier) In this section, we will code and learn about how to write unit tests for the controller Setting up the Unit Test for the CourseController Unit test for the Post Endpoint in CourseController Unit test for the GET Endpoint in CourseController Unit test for the PUT Endpoint in CourseController Unit test for the DELETE Endpoint in CourseController Section 14 : Bean Validation using Validators and ControllerAdvice In this section, we will code and learn the different techniques to apply bean validations and handle exceptions using the ControllerAdvice Pattern Name and Category as Mandatory using @NotBlank Annotation Implement Custom Error Handling using ControllerAdvice pattern Handle Global RuntimeException using ControllerAdvice Pattern Section 15 : Custom JPA queries using Spring Data JPA and DB Layer testing using @DataJpaTest In this lecture, we will learn about the techniques to write custom JPA queries and the techniques to test the DB layer using the DataJpaTest Retrieve Courses By Name using JPA Query Creation Function Retrieve Courses By Name using Native SQL query Testing Mutliple sets of Data using @Parameterized test Section 16: GET Endpoint to retrieve Courses By Name using @RequestParam In this section, we will code and learn about the usage of RequestParam in the controller endpoint. Use existing GET endpoint to retrieve Courses by Name Write Integration test to retrieve course by Name Section 17 : Entity RelationShips using Spring Data JPA In this section, I will explain the technique to express the relationships in JPA using Entity and Data classes in Kotlin Adding Instructor Entity in to the Course Catalog Service Adding the relationship in the Entity Class Instructor Controller to Manage Instructor Data Update CourseService to validate Instructor Data Fix the CourseController Integration Tests Fix the CourseController Unit Tests Section 18 : Integrating with Postgres DB In 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 Postgres Test the app with Postgres DB Section 19 : Integration Testing using TestContainers In this section, we will code and learn to integrate the testcontainers to run integration test. Setting Up TestContainers for the Integration Test Configure @DataJpaTest with TestContainers Section 20 : Java & Kotlin Interoperability In this section, we will code and learn about the interoperability between Java and Kotlin. Invoking Kotlin Code from Java Class Invoking Java Code from Kotlin Useful JVM annotations in Kotlin By the end of this course, you will be comfortable writing code using the Koltin Programming language and Build RestFuL APIs using SpringBoot and Kotlin.
- 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
Temario
UNIDAD 1 - Getting Started with the Course · 2 leccionesUNIDAD 1 - Getting Started with the Course
UNIDAD 1 - Getting Started with the Course
- Course Introduction
- Prerequisites
UNIDAD 2 - Course Slides & Source Code · 2 leccionesUNIDAD 2 - Course Slides & Source Code
UNIDAD 2 - Course Slides & Source Code
- Course Slides
- Source Code
UNIDAD 3 - Getting Started with Kotlin Programming Language · 2 leccionesUNIDAD 3 - Getting Started with Kotlin Programming Language
UNIDAD 3 - Getting Started with Kotlin Programming Language
- Introduction to Kotlin
- How Kotlin Works with the JVM?
UNIDAD 4 - Kotlin Fundamentals · 8 leccionesUNIDAD 4 - Kotlin Fundamentals
UNIDAD 4 - Kotlin Fundamentals
- Project Setup
- Hello Kotlin!
- val & var variables in Kotlin
- Basic Types - Int, Long, Double, String
- Conditionals - If and when block
- Ranges & Loops
- while & do-While
- break, labels and return
UNIDAD 5 - Functions in Kotlin · 3 leccionesUNIDAD 5 - Functions in Kotlin
UNIDAD 5 - Functions in Kotlin
- Defining and Invoking Functions
- Default Value Parameters & Named Arguments
- Top-Level Functions and Top-level Properties
UNIDAD 6 - Classes, Interfaces and Inheritance · 17 leccionesUNIDAD 6 - Classes, Interfaces and Inheritance
UNIDAD 6 - Classes, Interfaces and Inheritance
- Introduction to class - Creating a class and objects
- Primary Constructors
- Secondary Constructors
- initializer code using init block
- Data Classes
- Create Employee Data Class
- Custom Getters and Setters
- Inheritance - Extending Classes
- Inheritance - Override Functions, Variables
- object keyword for creating instance of the class
- companion object Keyword
- Interfaces
- Interfaces - Handling Conflicting Functions
- Interfaces - Defining and Overrding Variables
- Visibility Modifiers
- Type Checking, Casting and Smart Cast
- Enum class
UNIDAD 7 - Nulls in Kotlin · 3 leccionesUNIDAD 7 - Nulls in Kotlin
UNIDAD 7 - Nulls in Kotlin
- Nullable & Non-Nullable types in Kotlin
- Safe Call(?) ,Elvis Operator(?:),Non Null Assertion(!!) to deal with Null Values
- Invoking or assigning a Nullable Type to a Non-Nullable Type
UNIDAD 8 - Collections, Arrays & Lamda Expressions · 9 leccionesUNIDAD 8 - Collections, Arrays & Lamda Expressions
UNIDAD 8 - Collections, Arrays & Lamda Expressions
- Introduction to Collections
- Introduction to Lamda Expressions
- Lambdas and Higher Order Functions
- Filter Operations on Kotlin Collections
- Map Operations on Kotlin Collections
- FlatMap Operations in Collections
- Working With HashMaps
- Lazy Evaluation of Collections using Sequences
- Nullability in Collections
UNIDAD 9 - Exceptions In Kotlin · 1 leccionesUNIDAD 9 - Exceptions In Kotlin
UNIDAD 9 - Exceptions In Kotlin
- Handling Exceptions using try-catch
UNIDAD 10 - Scope Functions · 4 leccionesUNIDAD 10 - Scope Functions
UNIDAD 10 - Scope Functions
- Introduction to Scope Functions
- apply & also Scope Function
- let Scope Function
- with & run Scope Function
UNIDAD 11 - Getting Started with Kotlin and Spring Boot · 5 leccionesUNIDAD 11 - Getting Started with Kotlin and Spring Boot
UNIDAD 11 - Getting Started with Kotlin and Spring Boot
- Overview of the app & Project Setup
- Build a Simple Endpoint - Greeting Controller
- Constructor Injection in Spring
- Setting up different profiles in Spring Boot
- Set up Logging in Kotlin
UNIDAD 12 - Integration/Unit Testing using Junit5 · 3 leccionesUNIDAD 12 - Integration/Unit Testing using Junit5
UNIDAD 12 - Integration/Unit Testing using Junit5
- Introduction to Automated Tests & Setting up JUnit5
- Integration Test for Controller
- Unit Test for Controller - Using the Mockk Mocking library
UNIDAD 13 - Build the Course Catalog Service · 9 leccionesUNIDAD 13 - Build the Course Catalog Service
UNIDAD 13 - Build the Course Catalog Service
- Set up the Course Entity & CourseDTO
- Create CourseRepository & Configure JPA in application.yml file
- Build the POST Endpoint for adding new Course
- Integration test for the POST endpoint using JUnit5
- Build the Get Endpoint to retrieve all Courses
- Integration test for the GET endpoint to retrieve all the courses
- Build the Update Endpoint to update a Course
- Integration test for the PUT endpoint using JUnit5
- Build the DELETE endpoint to delete a Course
UNIDAD 14 - Unit Testing Controller layer (Web Tier) · 5 leccionesUNIDAD 14 - Unit Testing Controller layer (Web Tier)
UNIDAD 14 - Unit Testing Controller layer (Web Tier)
- Setting up the Unit Test for the CourseController
- Unit test for the Post Endpoint in CourseController
- Unit test for the GET Endpoint in CourseController
- Unit test for the PUT Endpoint in CourseController
- Unit test for the DELETE Endpoint in CourseController
UNIDAD 15 - Bean Validation using Validators and ControllerAdvice · 3 leccionesUNIDAD 15 - Bean Validation using Validators and ControllerAdvice
UNIDAD 15 - Bean Validation using Validators and ControllerAdvice
- Name and Category as Mandatory using @NotBlank Annotation
- Implement Custom Error Handling using ControllerAdvice pattern
- Handle Global RuntimeException using ControllerAdvice Pattern
UNIDAD 16 - Custom JPA queries using Spring Data JPA and DB Layer testing using @DataJpaTest · 3 leccionesUNIDAD 16 - Custom JPA queries using Spring Data JPA and DB Layer testing using @DataJpaTest
UNIDAD 16 - Custom JPA queries using Spring Data JPA and DB Layer testing using @DataJpaTest
- Retrieve Courses By Name using JPA Query Creation Function
- Retrieve Courses By Name using Native SQL query
- Testing Mutliple sets of Data using @Parameterized test
UNIDAD 17 - GET Endpoint to retrieve Courses By Name using @RequestParam · 2 leccionesUNIDAD 17 - GET Endpoint to retrieve Courses By Name using @RequestParam
UNIDAD 17 - GET Endpoint to retrieve Courses By Name using @RequestParam
- Use existing GET endpoint to retrieve Courses by Name
- Write Integration test to retrieve course by Name
UNIDAD 18 - Entity RelationShips using Spring Data JPA · 9 leccionesUNIDAD 18 - Entity RelationShips using Spring Data JPA
UNIDAD 18 - Entity RelationShips using Spring Data JPA
- Adding Instructor Entity in to the Course Catalog Service
- Adding the relationship in the Entity Class
- Instructor Controller to Manage Instructor Data
- Integration Test InstructorController POST Endpoint
- UnitTest InstructorController POST Endpoint
- Bean Validation InstructorController
- Update CourseService to validate Instructor Data
- Fix the CourseController Integration Tests
- Fix the CourseController Unit Tests
UNIDAD 19 - Integrating with Postgres DB · 2 leccionesUNIDAD 19 - Integrating with Postgres DB
UNIDAD 19 - Integrating with Postgres DB
- Setting up the Postgres DB and App to interact with Postgres
- Test the app with Postgres DB
UNIDAD 20 - Integration Testing using TestContainers · 2 leccionesUNIDAD 20 - Integration Testing using TestContainers
UNIDAD 20 - Integration Testing using TestContainers
- Setting Up TestContainers for the Integration Test
- Configure @DataJpaTest with TestContainers
UNIDAD 21 - Java & Kotlin Interoperability · 3 leccionesUNIDAD 21 - Java & Kotlin Interoperability
UNIDAD 21 - Java & Kotlin Interoperability
- Invoking Kotlin Code from Java Class
- Invoking Java Code from Kotlin
- Useful JVM annotations in Kotlin
Tu certificado lo emite la SEP, no solo una plataforma
Al demostrar la competencia recibes un certificado emitido por la Secretaría de Educación Pública a través del Gobierno del Estado de México: un documento oficial que puedes presentar con confianza ante cualquier empleador o institución.
Tu certificado con INEC
- Lo emite la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México
- Documento oficial con folio verificable en línea
- Lo otorga la Universidad Tecnológica Fidel Velázquez
Otras plataformas en línea
- Constancia privada emitida por la misma plataforma
- Solo acredita horas cursadas o asistencia
- Sin respaldo de una autoridad educativa
Tu itinerario, de la inscripción al certificado
- 1
Inscripción con pago único
Pagas $2,800 MXN una sola vez y entras de inmediato al curso.
- 2
Estudias a tu ritmo
21 unidades con videos, lecturas y actividades, disponibles 24/7 durante 12 meses.
- 3
Cuestionarios por unidad
4 cuestionarios para comprobar lo aprendido.
- 4
Certificado
Emitido por la SEP a través del Gobierno del Estado de México, con folio verificable.
Un certificado oficial de la SEP
- Emitido por la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México. No es una constancia privada: es un documento oficial, y ese respaldo marca la diferencia frente a otras plataformas en línea.
- Contenido impartido por Pragmatic Code School.
- Folio y QR verificables para compartirlo con quien te contrate.
Empieza hoy, a tu ritmo
Un solo pago y acceso inmediato al curso completo durante 12 meses.
- 21 unidades · 97 lecciones · 60 h
- 12 meses de acceso
- 4 cuestionarios de evaluación
- Certificado emitido por la SEP (Gob. del Estado de México) con folio verificable
Sobre tu inscripción
¿Cómo es el pago?
Un solo pago de $2,800 MXN. No hay mensualidades ni cargos recurrentes.
¿Cuánto tiempo tengo acceso?
12 meses desde tu inscripción, 24/7, para avanzar a tu ritmo.
¿Quién imparte el contenido?
El curso es impartido por Pragmatic Code School; INEC gestiona tu inscripción, evaluación y certificado.
¿Qué pasa cuando vence mi acceso?
Puedes renovar tu cuenta tú mismo desde la plataforma, sin trámites ni esperas.


