Web Development · WDC-98

RESTful API with Spring Boot and Kotlin

18 hours 3 days
Last updated

RESTful API with Spring Boot and Kotlin is a 18-hour training course by IT Genius Institute. การออกแบบและพัฒนา RESTful web service ในยุคปัจจุบันถือว่าเป็นส่วนที่กำลังได้รับความนิยม และมีความจำเป็นต้องใช้ในการสื่อสารระหว่างเว็บกับแอพพลิเคชั่น…

Training schedule

No public rounds are open right now — register your interest and we will contact you when the next round opens, or request an in-house session for your team.

Corporate training quote

RESTful API with Spring Boot and Kotlin การออกแบบและพัฒนา RESTful web service ในยุคปัจจุบันถือว่าเป็นส่วนที่กำลังได้รับความนิยม และมีความจำเป็นต้องใช้ในการสื่อสารระหว่างเว็บกับแอพพลิเคชั่น การนำเทคโนโลยีของภาษา Java ภายใต้ Spring Framework และ Spring Boot ถือเป็นอีกแนวทางที่น่าสนใจ และเหมาะสมกับผู้เริ่มต้นนำไปประยุกต์ใช้ในงานของตัวเอง

ในหลักสูตรนี้ผู้เข้าอบรมจะได้เรียนรู้ พื้นฐานการออกแบบ Restful Web Service ตั้งแต่เริ่มต้นด้วย Spring framework ตามแนวทาง MVC ร่วมกับ Spring Boot โดยใช้ IDE IntelliJ IDEA

Objectives

  • สามารถสร้าง RESTful API ด้วย Spring Boot และ Kotlin ได้

Who this course is for

  • ไอทีหรือผู้ดูและระบบ
  • ผู้สนใจในการพัฒนา RESTful API ด้วย Spring Boot และ Kotlin

Prerequisites

  • พื้นฐานภาษา Java Programming
  • เคยใช้ IDE IntelliJ IDEA
  • การสร้าง แอปพลิเคชันด้วย Spring Boot

Curriculum

Module 1: Getting Started with Kotlin Programming Language

  • Introduction to Kotlin
  • How Kotlin Works with the JVM?

Module 2: 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

Module 3: Functions in Kotlin

  • Defining and Invoking Functions
  • Default Value Parameters & Named Arguments
  • Top-Level Functions and Top-level Properties

Module 4: Classes, Interfaces and Inheritance

  • 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 Overriding Variables
  • Visibility Modifiers
  • Type Checking, Casting and Smart Cast
  • Enum class

Module 5: 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

Module 6: 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

Module 7: Exceptions In Kotlin

  • Handling Exceptions using try-catch

Module 8: Scope Functions

  • Introduction to Scope Functions
  • Apply & also Scope Function
  • Let Scope Function
  • with & run Scope Function

Module 9: 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

Module 10: Integration/Unit Testing using Junit 5

  • Introduction to Automated Tests & Setting up JUnit5
  • Integration Test for Controller
  • Unit Test for Controller - Using the Mockk Mocking library

Module 11: Introduction to RESTful Web Services

  • Introduction to RESTful Web Services
  • Beginners Guide to REST
  • Richardson Maturity Model
  • Introduction to Postman
  • Assignment - Create Data Model
  • Assignment Review - Create Data Model
  • Introduction to Spring RestTemplate
  • Using WebFlux to Display API Data
  • URI Components Builder
  • Rest Template Examples
  • Going Reactive with Spring WebClient

Module 12: RESTful WebServices with Spring MVC

  • Introduction to RESTful Web Services with Spring MVC
  • New Spring Boot Project
  • Spring Boot Command Line Runner
  • Introduction to MapStruct
  • Using MapStruct
  • MapStruct IntelliJ Plugin
  • Category Service
  • List Categories
  • Testing with Postman
  • Assignment - Create Get API for Customers
  • Assignment Review
  • Create New Customer with Post
  • Update Customer with PUT

Module 13: 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

Module 14: 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

Module 15: 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

Module 16: 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

Module 17: Entity RelationShips using Spring Data JPA

  • Adding Instructor Entity into 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

Module 18: Integrating with Postgres DB

  • Setting up the Postgres DB and App to interact with Postgres
  • Test the app with Postgres DB

Module 19: Integration Testing using TestContainers

  • Setting Up TestContainers for the Integration Test
  • Configure @DataJpaTest with TestContainers

Module 20: Java & Kotlin Interoperability

  • Invoking Kotlin Code from Java Class
  • Invoking Java Code from Kotlin
  • Useful JVM annotations in Kotlin

Frequently asked questions

Who is RESTful API with Spring Boot and Kotlin for, and what background is needed?

Built for ไอทีหรือผู้ดูและระบบ · ผู้สนใจในการพัฒนา RESTful API ด้วย Spring Boot และ Kotlin Background you should have: พื้นฐานภาษา Java Programming · เคยใช้ IDE IntelliJ IDEA Not sure the fit is right? Talk to our team on LINE @itgenius or call 02-570-8449.

How much does RESTful API with Spring Boot and Kotlin cost and how long does it run?

THB 9,500 (currently THB 8,550 on promotion). The course runs 18 hours. The fee covers course materials, lunch and refreshments throughout. Pay by bank transfer to the company account, confirm it on our payment page, and we can issue the receipt or tax invoice in your company's name.

Do I get a certificate?

Yes. Everyone who completes the course receives a Certificate of Completion from IT Genius Institute. Each certificate carries its own number, and anyone holding that number can verify it online on our certificate page, so you can add it to your portfolio or pass it to HR as evidence of training.

Where does the training take place, and is there an online option?

You can attend onsite at IT Genius Institute or arrange to join online, and we also run it as a private in-house session for your team. Ask about dates and venues on LINE @itgenius or call 02-570-8449.

What if I fall behind or miss a session — can I retake it?

Yes. You may retake the same course free of charge in a later round, under the institute's conditions. Tell our team which course and round you attended, and we will check it and offer you the rounds that still have seats. Ask us on LINE @itgenius or call 02-570-8449.

How do I enrol, or request a quotation for my company?

Enrol online with the registration form on this page. You can register several attendees at once and enter your tax ID and billing address for the tax invoice. Or request a company quotation straight from the quote button. For anything else call 02-570-8449 or reach us on LINE @itgenius.

Instructors

Run this course for your whole team

We run this course in-house, tailored to your stack.

Corporate training quote