Ktor 是 JetBrains 以 Kotlin 語言開發的輕量級 Web 微框架,由於 Ktor 並沒有內建整合 Web 框架常具備的 DI 及 ORM,對於那些追求輕量化而不想使用 Spring Boot 全家桶的人而言,可能又覺得太過於簡化,只適合開發簡單的小型服務。在這30天中,我會先整合 DI, ORM, Redis Client,並自行實作 i18n, OpenAPI 文件產生器, RBAC for APIs 等功能來增強 Ktor,再以此為基礎,開發2個可各自獨立建構部署的子專案,包含了使用者登入驗證、訊息通知服務…等功能,示範如何使用改造後的 Ktor 來開發網站後端服務
系統除了即時接受及回應使用者請求,也需要執行各種非同步工作,例如背景排程及寄送訊息通知…等。在實作上,雖然我可以直接使用 CompletableFuture,...
Java Web 框架通常都至少整合一種 ORM,只要 Gradle depenency 加一下,再到設定檔填入資料庫連線設定即可。但目前 Ktor 官方尚未整...
ORM 框架可以讓開發者專注於物件的 CRUD 操作,不必直接思考 SQL 要怎麼寫。如果是新增、修改、刪除操作的話,通常只要寫一行程式碼,呼叫 save()...
大多數系統的資料庫查詢操作比寫入多樣化且複雜,後端工程師要花比較多的心力撰寫查詢 API,以下列出常見的幾個問題 同一張資料表的查詢 API 會隨著 Clie...
目前 Redis 幾乎已成為後端微服務架構的必備基礎設施,但是 Ktor 官方連 ORM 都沒有整合了,Redis Client 當然也不會有啦,所以第一步就先...
前面我們已經學會 Ktor Authentication 機制,而且也整合了 Database 及 Redis,今天我們把這些東西都串連起來,實作支援 Mult...
session authentication 的機制是 登入時建立 sessionId 儲存 session 資料至 Redis 驗證時使用 sessionI...
鐵人賽已逐漸進入尾聲,前面二十多天,我們一步步擴充加強 Ktor 功能,也整合了 ORM, Redis 許多框架函式庫,整個系統架構及基礎設施功能已逐漸成形。今...
前面的主題都專注於擴充加強 Ktor 及實作底層基礎設施功能,最後我們來看在 Multi-Project 架構下,要如何建立一個子專案。那麼要建立什麼子專案呢?...
終於來到鐵人賽最後一天,本來想回顧總結我實作 side project 的過程,但想到讀者應該對於 Ktor 仍有許多疑問而正在猶豫是否要採用它,所以我列出之前...