用 Ktor 把一個 Todo API 從 0 一路做到可以部署,從 Routing、Plugin、Content Negotiation 起步,一路接上 DI、Exposed 資料庫、認證授權和 Docker 部署,把平常工作每天要面對的那些事一件一件做完
這篇要裝 2 個現成的守門 plugin,CORS 管瀏覽器的跨網域請求該不該放行,RateLimit 替整個 application 設請求上限,2 個都是...
respondText 很一開始使用到現在,todo-api 回的一直是純文字,todo 在程式裡也只是一個 List<String>,這篇進入新...
day 12 的 Todo 3 個欄位都必填,也都沒有預設值,JSON 長什麼樣 data class 就長什麼樣,這種一一對應在測試時很乾淨,接上真實的 c...
day 13 結尾那 2 個一模一樣的 400 訊息的問題,這篇只解決得掉一半,RequestValidation 補的是「JSON 解得開,但值不合理」那一...
day 14 最後的時候,todo-api 對 client 的錯誤有 3 種回法,2 種 400 加 1 種說謊的 500,格式全是純文字,其中那個 500...
day 15 對 todo-api 連打 5 個會出錯的請求,伺服器的 ERROR log 完全沒有紀錄,StatusPages 把例外接走之後 handle...
day 16 結尾列了 3 個寫死在程式碼裡的東西,port 8080、log level、call id 的長度,還有 day 15 欠的那個「開發模式才回...
day 17 結尾說「這 2 件事是同一個問題的兩面,東西建出來之後要交給誰、怎麼交」,這篇會用 Ktor 3.2 起內建的 ktor-server-di 回...
day 18 結尾寫的是「provide<MutableList<Todo>> 這個宣告本身就是問題的所在,型別只說了資料的形狀,沒說...
day 19 結尾寫的是「下一篇把 Exposed 裝進來,建立 table 定義,接上資料庫連線,然後處理連線這種 AutoCloseable 資源要怎麼交...