RESTful API with Spring Boot and Kotlin

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

สาขากรุงเทพฯ (ลาดพร้าว)
  • ยังไม่มีรอบเปิดอบรม (ลงชื่อจองไว้ได้)
  • สามารถสร้าง RESTful API ด้วย Spring Boot และ Kotlin ได้
  • ไอทีหรือผู้ดูและระบบ
  • ผู้สนใจในการพัฒนา RESTful API ด้วย Spring Boot และ Kotlin
  • พื้นฐานภาษา Java Programming
  • เคยใช้ IDE IntelliJ IDEA
  • การสร้าง แอปพลิเคชันด้วย Spring Boot
  • 18 ชั่วโมง
  • ราคาปกติ 9,500 บาท / คน
  • โปรโมชั่นลด 10% เหลือ 8,550 บาท / คน
  • ราคาเหมาจ่าย (ผู้อบรมตั้งแต่ 10 คน) ตามแต่ตกลงกัน
  • ขอใบเสนอราคา

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
05/11/2024 14:23:01