Kotlin web框架
Ktor 是一个基于Kotlin的使用最小的代价,快速创建一个web应用程序的框架。
import org.jetbrains.ktor.netty.*
import org.jetbrains.ktor.routing.*
import org.jetbrains.ktor.application.*
import org.jetbrains.ktor.host.*
import org.jetbrains.ktor.http.*
import org.jetbrains.ktor.response.*
fun main(args: Array) {
embeddedServer(Netty, 8080) {
routing {
get("/") {
call.respondText("Hello, world!", ContentType.Text.Html)
}
}
}.start(wait = true)
}在localhost:8080运行嵌入式web服务
当根路径接收到GET方式的http请求时。配置路由并响应Hello, world!。
原理
Unopinionated
Ktor 框架没有强制要求在工程中是 使用 – 日志,模版,消息,预处理,序列化,依赖注入等等技术。 有时候它可能需要实现一个简单的接口。但一般情况下主要是写转移或拦截函数。 这些特性通过同一的拦截机制(可以搭建任意的管道)进行配置。
Ktor 应用可以部署在任何支持 Servlet 3.0+ API 的servlet容器就像是Tomcat,或是独立的使用 Netty 或 Jetty。 可以通过添加一致的主机API来支持其他类型的主机。
Ktor APIs大多数函数都通过lambda表达式进行调用。感谢 Kotlin 的 DSL 功能, 代码看起来像是说明。应用的组织完全由开发者来选择 – 函数或类,使用依赖注入框架或是所有的功能都在main函数中实现。
异步
Ktor 的管道机制和API利用Kotlin的协同程序,提供易于使用的异步编程模型而不使其过于笨重。所有站点的实现都使用异步 I/O 设备,以防止线程阻塞。
可测试
Ktor 应用可以部署在特殊的测试环境,一定程度上模拟web服务,而不需要网络操作 。它提供了简单的程序测试方式,没有模拟太多的东西。但在验证程序调用的时候,仍然能达到很好的性能。在真实的嵌入式Web服务器中进行集成测试,当然也是可以的。
文档
请浏览 ktor.io(http://ktor.io/) 的快速开始以及过于特性、使用、机制的详细解释。Getting started with Gradle(http://ktor.io/getting-started-gradle)
Getting started with Maven(http://ktor.io/getting-started-maven)
Getting started with IDEA(http://ktor.io/getting-started-idea)
启示
Kotlin web 框架,像是 Wasabi 和 Kara,现在已经弃用了。
Github地址:Ktor web 框架 (https://github.com/Kotlin/ktor)