iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

Kotlin 手刻 Ktor 從零開始 系列

會使用 Kotlin 從零手刻一個 Ktor 風格的輕量 Web 框架 Relix,從 JDK 內建的 HttpServer 起步,一路做到 Routing DSL、Pipeline 洋蔥模型、Plugin 系統、Content Negotiation 和 DI 容器,手刻一次不是為了取代 Ktor,而是把藏在背後的機制拆開來看

鐵人鍊成 | 共 32 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 21

Kotlin 手刻 Ktor 從零開始 Day 21 型別安全的 Request 讀取,receive<T>() 與 queryParam<T>()

第 20 篇做了 Response 方向,ok(user) 自動轉 JSON,這篇補齊 Request 的方向,讓 handler 用型別安全的方式讀取輸入...

2026-09-11 ‧ 由 Cash 分享
DAY 22

Kotlin 手刻 Ktor 從零開始 Day 22 Request Validation,輸入驗證機制

有了 receive&lt;T&gt;(),JSON 可以解析成 data class,但「型別正確」不代表「資料有效」 name 不能是空白 age...

2026-09-12 ‧ 由 Cash 分享
DAY 23

Kotlin 手刻 Ktor 從零開始 Day 23 Authentication / Authorization,認證與授權

第 22 篇解決「輸入是否合理」,這篇處理另一個問題,「誰可以做什麼」 Authentication (認證),你是誰 Authorization (授權)...

2026-09-13 ‧ 由 Cash 分享
DAY 24

Kotlin 手刻 Ktor 從零開始 Day 24 Static File Serving,靜態檔案服務

API 框架常常需要順便提供靜態檔案,Swagger UI、前端打包後的 assets、上傳檔案的下載,這篇要在 Relix 加上靜態檔案路由 目標 API...

2026-09-14 ‧ 由 Cash 分享
DAY 25

Kotlin 手刻 Ktor 從零開始 Day 25 Configuration,框架的設定系統

框架開始有各種功能 (middleware、content negotiation、body limit、thread pool) 之後,你需要一個一致而且方...

2026-09-15 ‧ 由 Cash 分享
DAY 26

Kotlin 手刻 Ktor 從零開始 Day 26 Dependency Injection,極簡的服務容器

應用開始變大之後,handler 裡常常需要各種 service 和 repository,如果每次都手動 new,會很難測試 (沒辦法替換成 mock),也...

2026-09-16 ‧ 由 Cash 分享
DAY 27

Kotlin 手刻 Ktor 從零開始 Day 27 Status Pages,統一的錯誤回應處理

第 16 篇做了 ErrorHandlingMiddleware,把 exception 轉成 500 或 RelixHttpException 對應的 st...

2026-09-17 ‧ 由 Cash 分享
DAY 28

Kotlin 手刻 Ktor 從零開始 Day 28 Testing Utilities,框架內建的測試工具

到目前為止,Relix 的測試工具跟著系列一路演進,從 06 篇做了最陽春的 RelixTestKit,只能送 request 拿 response,第 11...

2026-09-18 ‧ 由 Cash 分享
DAY 29

Kotlin 手刻 Ktor 從零開始 Day 29 綜合實戰 (上),用 Relix 打造 Todo API

從第 01 篇到第 28 篇,框架的核心零件都到齊了,Router、Pipeline、Plugin、Content Negotiation、Validatio...

2026-09-19 ‧ 由 Cash 分享
DAY 30

Kotlin 手刻 Ktor 從零開始 Day 30 綜合實戰 (下),加上驗證、錯誤處理與認證

第 29 篇把 Todo API 的 CRUD 跑起來了,距離「能上線」還有幾個必備零件 輸入驗證,title 不能空白、長度要有上限 統一錯誤輸出,所有錯...

2026-09-20 ‧ 由 Cash 分享