iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Modern Web

基於 Kotlin Ktor 建構支援模組化開發的 Web 框架 系列

Ktor 是 JetBrains 以 Kotlin 語言開發的輕量級 Web 微框架,由於 Ktor 並沒有內建整合 Web 框架常具備的 DI 及 ORM,對於那些追求輕量化而不想使用 Spring Boot 全家桶的人而言,可能又覺得太過於簡化,只適合開發簡單的小型服務。在這30天中,我會先整合 DI, ORM, Redis Client,並自行實作 i18n, OpenAPI 文件產生器, RBAC for APIs 等功能來增強 Ktor,再以此為基礎,開發2個可各自獨立建構部署的子專案,包含了使用者登入驗證、訊息通知服務…等功能,示範如何使用改造後的 Ktor 來開發網站後端服務

鐵人鍊成 | 共 30 篇文章 | 9 人訂閱 訂閱系列文 RSS系列文 團隊Kotlin 愛台灣 2021
DAY 11

[Day 11] 實作 Ktor i18n 機制

以微框架來說,i18n 不是必備的功能,但如果是想要開發面向一般大眾的服務,在這個國際化的時代,i18n 就是不可缺少的功能。一般來說,Web 框架會有一個預設...

2021-09-16 ‧ 由 林俊宏 分享
DAY 12

[Day 12] 實作 API Response 及 i18n Response Message

定義 API Response 格式 API Response 的格式沒有標準答案,網路上已經有許多範例可以參考,我認為不管格式為何,重點是團隊成員有共識,而且...

2021-09-17 ‧ 由 林俊宏 分享
DAY 13

[Day 13] 實作 API Authentication

Ktor Authentication Plugin 因為 Ktor 的開發風格是 DSL,不依賴 annotation 及 DI,所以 Ktor Authen...

2021-09-18 ‧ 由 林俊宏 分享
DAY 14

[Day 14] 實作 API Role-Based Authorization

因為 Ktor 本身只有實作 Authentication 機制,不像 Spring Security 有定義類似 UserDetails, GrantedAu...

2021-09-19 ‧ 由 林俊宏 分享
DAY 15

[Day 15] 實作 OpenAPI Plugin 產生 API 文件

為什麼我想自己實作 Ktor OpenAPI Generator? 大多數的 Web 框架都有官方或社群開發的 OpenAPI Generator,自動把程式碼...

2021-09-20 ‧ 由 林俊宏 分享
DAY 16

[Day 16] 以 Programmatic 取代 Annotation 的方式撰寫 OpenAPI 文件

Spring Boot 使用 Annotation 撰寫 OpenAPI Definition 我們先來看 spring boot 撰寫 OpenAPI def...

2021-09-21 ‧ 由 林俊宏 分享
DAY 17

[Day 17] 實作 Ktor OpenAPI Generator

先前有提到整個 OpenAPI 的運作流程是… 開發者為 route 撰寫 OpenAPI definition Generator 根據 OpenAPI S...

2021-09-22 ‧ 由 林俊宏 分享
DAY 18

[Day 18] 轉換 OpenAPI 文件為 Postman Collection 做 Web API 自動化測試

Web API 測試可以是後端工程師使用測試框架撰寫白箱測試,也可以是 QA 使用測試工具進行黑箱測試。對於後端工程師來說,如果 API 有異動,很容易找出對應...

2021-09-23 ‧ 由 林俊宏 分享
DAY 19

[Day 19] 實作 Ktor Request Logging

Request Logging 是非常重要的必備功能,不僅可以用來系統監控、除錯,還可以進一步分析使用者行為…等,存在著廣泛的應用情境,所以每個 Web 框架都...

2021-09-24 ‧ 由 林俊宏 分享
DAY 20

[Day 20] 實作 Logging Plugin 建立系統 Logging 機制

系統的 Log 除了基本的 Request Log 及 Error Log 之外,特定的功能也會有記錄 Log 的需求,例如使用者登入時,需要記錄來源 IP、裝...

2021-09-25 ‧ 由 林俊宏 分享