iT邦幫忙

ktor相關文章
共有 165 則文章
鐵人賽 Software Development DAY 4

技術 Day 04:建立路徑,來看看 get() 函數

昨天我們看過了預設程式碼內 routing() 的實作 routing { get("/") { call.respondText(&...

鐵人賽 Software Development DAY 3

技術 Day 03:設置路由 `Application.configureRouting()`

看過了 embeddedServer().start(),我們接著來看看 Ktor 是如何設置 Route 的 首先我們看到 embeddedServer()...

鐵人賽 Software Development DAY 2

技術 Day 2:開始一個 server 服務:embeddedServer().start()

第一天開始,首先我們來一起看看 Ktor 是怎麼開始一個 server 服務的。 要開始研究這個事情,首先我們要先看看 Ktor 框架內的程式碼怎麼撰寫。 我們...

鐵人賽 Software Development DAY 1

技術 Day 01:不是寫 Kotlin,而是讀 Kotlin

在 2020 年時,我們透過 最好用的非同步網頁框架!開始用 Ktor 寫 Kotlin Server 這一系列文章,介紹了如何用 Kotlin 程式語言,搭配...

鐵人賽 Mobile Development DAY 21
Kotlin 全面啟動 系列 第 21

技術 [Kotlin 全面啟動] Ktor Server

本篇範例會使用 IntelliJ IDEA Ultimate 來建立專案,如果沒有安裝 Ultimate 版本的話也可以參考 https://start.kt...

鐵人賽 Mobile Development DAY 20
Kotlin 全面啟動 系列 第 20

技術 [Kotlin 全面啟動] Ktor Client III

今天來介紹 Ktor Client 的最後一篇,我們該如何使用之前所介紹的 serialization 讓 API 回傳直接變成我們想要的物件格式! 由於需要...

鐵人賽 Mobile Development DAY 19
Kotlin 全面啟動 系列 第 19

技術 [Kotlin 全面啟動] Ktor Client II

有了 HttpClient 這個物件之後,再來就是實際的連線囉,我們這邊以 Github 的 api 為例: GET: https://api.github.c...

鐵人賽 Mobile Development DAY 18
Kotlin 全面啟動 系列 第 18

技術 [Kotlin 全面啟動] Ktor Client

Ktor 是一套 Jetbrains 自己開發的前後端通包的網路連線 framework,因為純 Kotlin 加上又是自家產品,所以可以說是 KMM 的官方推...

鐵人賽 Software Development DAY 25

技術 第 25 天:結合(Multiplatform)Library

在開發 Desktop App 時,絕對不會只有刻 UI 這麼簡單,一定還有更多複雜的邏輯在背後運作,UI 只是觸發它們運作而已。而在現在 Web Servic...

鐵人賽 Modern Web DAY 30

技術 [Day 30] Ktor Q&A 與 Side Project Roadmap

終於來到鐵人賽最後一天,本來想回顧總結我實作 side project 的過程,但想到讀者應該對於 Ktor 仍有許多疑問而正在猶豫是否要採用它,所以我列出之前...

鐵人賽 Modern Web DAY 29

技術 [Day 29] 建立子專案來監控管理系統

前面的主題都專注於擴充加強 Ktor 及實作底層基礎設施功能,最後我們來看在 Multi-Project 架構下,要如何建立一個子專案。那麼要建立什麼子專案呢?...

鐵人賽 Modern Web DAY 28

技術 [Day 28] 實作 Multi-Channel Notifications

鐵人賽已逐漸進入尾聲,前面二十多天,我們一步步擴充加強 Ktor 功能,也整合了 ORM, Redis 許多框架函式庫,整個系統架構及基礎設施功能已逐漸成形。今...

鐵人賽 Modern Web DAY 27

技術 [Day 27] 實作 Redis PubSub Keyspace Notification 訂閱 Session Key Expired 事件通知

session authentication 的機制是 登入時建立 sessionId 儲存 session 資料至 Redis 驗證時使用 sessionI...

鐵人賽 Modern Web DAY 26

技術 [Day 26] 實作 Ktor Session Authentication with Redis

前面我們已經學會 Ktor Authentication 機制,而且也整合了 Database 及 Redis,今天我們把這些東西都串連起來,實作支援 Mult...

鐵人賽 Modern Web DAY 25

技術 [Day 25] 實作 Redis Plugin 整合 Redis Coroutine Client

目前 Redis 幾乎已成為後端微服務架構的必備基礎設施,但是 Ktor 官方連 ORM 都沒有整合了,Redis Client 當然也不會有啦,所以第一步就先...

鐵人賽 Modern Web DAY 24

技術 [Day 24] 自定義 REST QueryDSL 實現動態查詢資料庫

大多數系統的資料庫查詢操作比寫入多樣化且複雜,後端工程師要花比較多的心力撰寫查詢 API,以下列出常見的幾個問題 同一張資料表的查詢 API 會隨著 Clie...

鐵人賽 Modern Web DAY 23

技術 [Day 23] 自定義 ColumnType, Operator, Expression 擴展 Exposed Query DSL API

ORM 框架可以讓開發者專注於物件的 CRUD 操作,不必直接思考 SQL 要怎麼寫。如果是新增、修改、刪除操作的話,通常只要寫一行程式碼,呼叫 save()...

鐵人賽 Mobile Development DAY 13

技術 Data layer testing (4)

上一篇示範了 Ktor mock engine 的設定和測試了如果出現 exception 時能否順利地處理。現在就測試 getEta 輸出班次的情景。 Tes...

鐵人賽 Modern Web DAY 22

技術 [Day 22] 實作 Database Plugin 整合 Exposed ORM, HikariCP 及 Flyway

Java Web 框架通常都至少整合一種 ORM,只要 Gradle depenency 加一下,再到設定檔填入資料庫連線設定即可。但目前 Ktor 官方尚未整...

鐵人賽 Mobile Development DAY 12

技術 Data layer testing (3)

上一篇我們寫好了 EtaResponseMapper 的 unit test。但 data layer 還有 EtaResponseMapper 未寫 unit...

鐵人賽 Modern Web DAY 21

技術 [Day 21] 使用 Coroutine SendChannel 處理非同步工作

系統除了即時接受及回應使用者請求,也需要執行各種非同步工作,例如背景排程及寄送訊息通知…等。在實作上,雖然我可以直接使用 CompletableFuture,...

鐵人賽 Modern Web DAY 20

技術 [Day 20] 實作 Logging Plugin 建立系統 Logging 機制

系統的 Log 除了基本的 Request Log 及 Error Log 之外,特定的功能也會有記錄 Log 的需求,例如使用者登入時,需要記錄來源 IP、裝...

鐵人賽 Modern Web DAY 19

技術 [Day 19] 實作 Ktor Request Logging

Request Logging 是非常重要的必備功能,不僅可以用來系統監控、除錯,還可以進一步分析使用者行為…等,存在著廣泛的應用情境,所以每個 Web 框架都...

鐵人賽 Modern Web DAY 18

技術 [Day 18] 轉換 OpenAPI 文件為 Postman Collection 做 Web API 自動化測試

Web API 測試可以是後端工程師使用測試框架撰寫白箱測試,也可以是 QA 使用測試工具進行黑箱測試。對於後端工程師來說,如果 API 有異動,很容易找出對應...

鐵人賽 Modern Web DAY 17

技術 [Day 17] 實作 Ktor OpenAPI Generator

先前有提到整個 OpenAPI 的運作流程是… 開發者為 route 撰寫 OpenAPI definition Generator 根據 OpenAPI S...

鐵人賽 Mobile Development DAY 7

技術 Data layer implementation (1)

在上一篇,我們把 Ktor client 加到 Dagger 的 object graph 內。現在我們就繼續寫 data layer 部分。 跨 layer...

鐵人賽 Modern Web DAY 16

技術 [Day 16] 以 Programmatic 取代 Annotation 的方式撰寫 OpenAPI 文件

Spring Boot 使用 Annotation 撰寫 OpenAPI Definition 我們先來看 spring boot 撰寫 OpenAPI def...

鐵人賽 Mobile Development DAY 6

技術 HTTP Client

在 Android 開發如果要用到 HTTP client 的話基本上大家都預設用 OkHttp + Retrofit 這個組合。這次我們試試一些新東西:Kto...

鐵人賽 Modern Web DAY 15

技術 [Day 15] 實作 OpenAPI Plugin 產生 API 文件

為什麼我想自己實作 Ktor OpenAPI Generator? 大多數的 Web 框架都有官方或社群開發的 OpenAPI Generator,自動把程式碼...

鐵人賽 Modern Web DAY 14

技術 [Day 14] 實作 API Role-Based Authorization

因為 Ktor 本身只有實作 Authentication 機制,不像 Spring Security 有定義類似 UserDetails, GrantedAu...