[Day 29] 建立对外沟通的 API Server,谈谈 Ktor 框架

能够存取资料库了,有时我们可能会需要将资料库的内容,以 API 的形式,传输给其他的开发者。

这时候,我们可以用到 Ktor 这个框架,来协助我们进行API Server 的开发。

什麽是 Ktor

Ktor 是一个能快速建立网页後端的框架,由 JetBrains 公司开发并维护。

简单介绍,这个框架有几个特点

全 Kotlin

由於 Kotlin 和 Java 生态系吻合度非常好,有许多工程师在遇到网页後端的需求时,会选用 Java 生态系内的框架来解决这个问题。

在这些选择内,Ktor 是少数几个使用全 Kotlin 撰写的网页框架。

语法精简

Ktor 利用了 Kotlin 语法精简的特性,设计出了即使和其他语言的框架相比,都是非常简单好用的後端框架。

举例来说,用 Ktor 建立一个 Hello world 的 API,程序码如下

routing {
    get("/hello") {
        call.respondText("Hello")
    }
}

coroutine

透过 Kotlin 的 coroutine,Ktor 可以很容易的处理非同步的需求。

例如,我们可以用 async/await 的方式,来进行对外部资料的存取

val client = HttpClient(CIO)
val firstRequest: Deferred<String> = async { client.get("http://localhost/path1") }
val secondRequest: Deferred<String> = async { client.get("http://localhost/path2") }
val firstRequestContent = firstRequest.await()
val secondRequestContent = secondRequest.await()

总结来说,对於 Kotlin 开发者,Ktor 可以说是在开发和维运的各个方面,都非常有优势的一个後端框架。

有关这个框架的安装和开发,去年笔者已经写过了一系列铁人赛 最好用的非同步网页框架!开始用 Ktor 写 Kotlin Server,有兴趣的朋友可以去看看。


<<:  RDS Deadlock

>>:  DAY22 - 前端的内容不写之後,接下来要写的内容

Alpine Linux Porting (一点二?)

今天稍微回头update一下musl这边的porting状况。 之前遇到message queue跟...

DAY 19 Big Data 5Vs – Variety(速度) EMR (2)

接续介绍昨天建立的EMR丛集: 建立的丛集可以在左方工具栏的丛集分页找到 步骤的状态可以到「步骤」分...

D16 - 转移资料到TiDB工具介绍(三)

延续前一篇建立完资料来源之後,接着试着把MySQL的test.tidb_test资料转移到TiDB。...

知识工作者的管理

在上一篇我分享过我对「工作的意义与价值」的观察。读过後,你该不难理解为何当年 Jack Welch...

Day 08 - Spring Boot 常用注释(上)

注释基本概念 注释(Annotations) 是Java 5.0 加入的新功能,它强化了程序注解与J...