Ktor 是一个轻松构建联网应用(web 应用、 HTTP 服务、 移动应用以及浏览器应用)的框架。 现代的联网应用需要异步化来提供最佳的用户体验,而 Kotlin 协程为此提供了极其简便的方式。
虽然还没有完全实现,但是 Ktor 的目标是为联网应用提供端到端的多平台应用框架。 目前支持 JVM 客户端与服务器场景,以及 JavaScript、iOS 与 Android 客户端,而我们(官方)正努力将服务端支持引入到原生(native) 环境,并将客户端支持引入到其他原生平台。
目录:
可以使用 Maven、 Gradle、 start.ktor.io 以及 IntelliJ 插件 来搭建一个 Ktor 项目。
该插件让你可以像 start.ktor.io 一样创建 Ktor 项目,但是具有完全集成在 IDE 中的额外便利。
就是这样。会在 IDE 内创建并打开一个新项目。
Ktor 的一个简单的 hello world 如下所示:
/demo
路径的 GET 请求,并以一个 HELLO WORLD!
消息回复。import io.ktor.application.*
import io.ktor.http.*
import io.ktor.response.*
import io.ktor.routing.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*
fun main(args: Array<String>) {
val server = embeddedServer(Netty, port = 8080) {
routing {
get("/") {
call.respondText("Hello World!", ContentType.Text.Plain)
}
get("/demo") {
call.respondText("HELLO WORLD!")
}
}
}
server.start(wait = true)
}
由于有 main 方法,因此可以用 IDE 执行。这会打开一个 HTTP 服务器, 监听在 http://127.0.0.1:8080,可以尝试用你喜欢的 web 浏览器打开它。
如果这不起作用,可能是计算机已占用该端口。可以尝试修改 (在第 10 行的)8080 端口并按需调整。
此时应该有一个非常简单的 Web 后端在运行,所以你可以进行修改, 并在浏览器中查看结果。
由于已经为 Gradle 项目配置了 application 插件与 mainClassName
,
因此可以在终端中运行,Linux/Mac 中使用 ./gradlew run
,Windows 中使用 gradlew run
。