昨天看過了 route() 的實作內 val selector = HttpMethodRouteSelector(method) 裡面的邏輯。 今天,我們來...
昨天我們看過了預設程式碼內 routing() 的實作 routing { get("/") { call.respondText(&...
看過了 embeddedServer().start(),我們接著來看看 Ktor 是如何設置 Route 的 首先我們看到 embeddedServer()...
第一天開始,首先我們來一起看看 Ktor 是怎麼開始一個 server 服務的。 要開始研究這個事情,首先我們要先看看 Ktor 框架內的程式碼怎麼撰寫。 我們...
在 2020 年時,我們透過 最好用的非同步網頁框架!開始用 Ktor 寫 Kotlin Server 這一系列文章,介紹了如何用 Kotlin 程式語言,搭配...
本篇範例會使用 IntelliJ IDEA Ultimate 來建立專案,如果沒有安裝 Ultimate 版本的話也可以參考 https://start.kt...
今天來介紹 Ktor Client 的最後一篇,我們該如何使用之前所介紹的 serialization 讓 API 回傳直接變成我們想要的物件格式! 由於需要...
有了 HttpClient 這個物件之後,再來就是實際的連線囉,我們這邊以 Github 的 api 為例: GET: https://api.github.c...
Ktor 是一套 Jetbrains 自己開發的前後端通包的網路連線 framework,因為純 Kotlin 加上又是自家產品,所以可以說是 KMM 的官方推...
在開發 Desktop App 時,絕對不會只有刻 UI 這麼簡單,一定還有更多複雜的邏輯在背後運作,UI 只是觸發它們運作而已。而在現在 Web Servic...
終於來到鐵人賽最後一天,本來想回顧總結我實作 side project 的過程,但想到讀者應該對於 Ktor 仍有許多疑問而正在猶豫是否要採用它,所以我列出之前...
前面的主題都專注於擴充加強 Ktor 及實作底層基礎設施功能,最後我們來看在 Multi-Project 架構下,要如何建立一個子專案。那麼要建立什麼子專案呢?...
鐵人賽已逐漸進入尾聲,前面二十多天,我們一步步擴充加強 Ktor 功能,也整合了 ORM, Redis 許多框架函式庫,整個系統架構及基礎設施功能已逐漸成形。今...
session authentication 的機制是 登入時建立 sessionId 儲存 session 資料至 Redis 驗證時使用 sessionI...
前面我們已經學會 Ktor Authentication 機制,而且也整合了 Database 及 Redis,今天我們把這些東西都串連起來,實作支援 Mult...
目前 Redis 幾乎已成為後端微服務架構的必備基礎設施,但是 Ktor 官方連 ORM 都沒有整合了,Redis Client 當然也不會有啦,所以第一步就先...
大多數系統的資料庫查詢操作比寫入多樣化且複雜,後端工程師要花比較多的心力撰寫查詢 API,以下列出常見的幾個問題 同一張資料表的查詢 API 會隨著 Clie...
ORM 框架可以讓開發者專注於物件的 CRUD 操作,不必直接思考 SQL 要怎麼寫。如果是新增、修改、刪除操作的話,通常只要寫一行程式碼,呼叫 save()...
上一篇示範了 Ktor mock engine 的設定和測試了如果出現 exception 時能否順利地處理。現在就測試 getEta 輸出班次的情景。 Tes...
Java Web 框架通常都至少整合一種 ORM,只要 Gradle depenency 加一下,再到設定檔填入資料庫連線設定即可。但目前 Ktor 官方尚未整...
上一篇我們寫好了 EtaResponseMapper 的 unit test。但 data layer 還有 EtaResponseMapper 未寫 unit...
系統除了即時接受及回應使用者請求,也需要執行各種非同步工作,例如背景排程及寄送訊息通知…等。在實作上,雖然我可以直接使用 CompletableFuture,...
系統的 Log 除了基本的 Request Log 及 Error Log 之外,特定的功能也會有記錄 Log 的需求,例如使用者登入時,需要記錄來源 IP、裝...
Request Logging 是非常重要的必備功能,不僅可以用來系統監控、除錯,還可以進一步分析使用者行為…等,存在著廣泛的應用情境,所以每個 Web 框架都...
Web API 測試可以是後端工程師使用測試框架撰寫白箱測試,也可以是 QA 使用測試工具進行黑箱測試。對於後端工程師來說,如果 API 有異動,很容易找出對應...
先前有提到整個 OpenAPI 的運作流程是… 開發者為 route 撰寫 OpenAPI definition Generator 根據 OpenAPI S...
在上一篇,我們把 Ktor client 加到 Dagger 的 object graph 內。現在我們就繼續寫 data layer 部分。 跨 layer...
Spring Boot 使用 Annotation 撰寫 OpenAPI Definition 我們先來看 spring boot 撰寫 OpenAPI def...
在 Android 開發如果要用到 HTTP client 的話基本上大家都預設用 OkHttp + Retrofit 這個組合。這次我們試試一些新東西:Kto...
為什麼我想自己實作 Ktor OpenAPI Generator? 大多數的 Web 框架都有官方或社群開發的 OpenAPI Generator,自動把程式碼...