iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

Kotlin 手刻 Ktor 從零開始 系列

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

參賽天數 26 天 | 共 26 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 1

Kotlin 手刻 Ktor 從零開始 Day 01 系列導讀,為什麼要手刻 Ktor 框架 ?

平常用 Kotlin 寫 Web API 時,Ktor 的寫法很自然。routing { get("/users/{id}") { ......

2026-08-22 ‧ 由 Cash 分享
DAY 2

Kotlin 手刻 Ktor 從零開始 Day 02 專案建置與開發環境,用 Kotlin Toolchain CLI 建立專案

上一篇先說明了這個系列想做什麼,這篇會先把後面相關的 Kotlin 專案建起來 原本寫 Kotlin JVM 專案,我通常會直接用 Gradle Kotlin...

2026-08-23 ‧ 由 Cash 分享
DAY 3

Kotlin 手刻 Ktor 從零開始 Day 03 Hello, Relix,用 JDK HttpServer 跑起第一個伺服器

這篇的重點是讓框架「能跑」,我們會用 JDK 內建的 HttpServer 啟動一個最小 HTTP Server,用整合測試驗證它能回應 "Hell...

2026-08-24 ‧ 由 Cash 分享
DAY 4

Kotlin 手刻 Ktor 從零開始 Day 04 Request 的封裝,把 HttpExchange 變成好用的 RelixRequest

上一篇我們用 HttpExchange 直接處理 request 和 response,雖然可以動,不過這種程式碼寫起來真的很痛苦 這篇要做的事很單純,把 J...

2026-08-25 ‧ 由 Cash 分享
DAY 5

Kotlin 手刻 Ktor 從零開始 Day 05 Response 的封裝,設計直覺的 RelixResponse

上一篇實作了 RelixRequest (把 request 讀進來),這篇要做它的另一半 RelixResponse (把 response 寫出去),目標...

2026-08-26 ‧ 由 Cash 分享
DAY 6

Kotlin 手刻 Ktor 從零開始 Day 06 RelixCall 與可測核心,Application / Engine / Handler

這篇是整個系列的第一個工程轉折點,前面幾篇我們把 Request 和 Response 做好了,但它們還是各自獨立的資料結構,這篇要做的是把它們放進一個請求生...

2026-08-27 ‧ 由 Cash 分享
DAY 7

Kotlin 手刻 Ktor 從零開始 Day 07 最簡單的路由,用 Map 做 URL 對應

前面幾篇我們把 HTTP 引擎、Request、Response、RelixCall、TestKit 都準備好了,但目前的 RelixApplication...

2026-08-28 ‧ 由 Cash 分享
DAY 8

Kotlin 手刻 Ktor 從零開始 Day 08 Route 與匹配規則,讓路由行為可預期

上一篇我們用 Map 做出了「能用但不夠用」的路由,Map 路由有兩個明顯的缺陷,沒辦法區分 404 (path 不存在) 和 405 (path 存在但 m...

2026-08-29 ‧ 由 Cash 分享
DAY 9

Kotlin 手刻 Ktor 從零開始 Day 09 路徑參數,讓 /users/{id} 活起來

上一篇我們做了 Router,能處理精確匹配、405、trailing slash。但精確匹配只能做到 /users、/health 這種固定路徑,真實的 R...

2026-08-30 ‧ 由 Cash 分享
DAY 10

Kotlin 手刻 Ktor 從零開始 Day 10 路由 DSL (上),用 Kotlin DSL 寫出漂亮的路由定義

到第 09 篇為止,我們的 Router 已經能匹配 method/path、回 404/405、支援路徑參數,功能看起來應該是夠了,但使用者體驗不行,目前註...

2026-08-31 ‧ 由 Cash 分享