Ktor 1.5 发布了,这是一个由 Kotlin 团队打造的 Web 框架,可用于创建异步、高性能和轻量级的 Web 服务器,并使用 Kotlin 惯用的 API 构建非阻塞的多平台 Web 客户端。
1.5.0 是今年的第三个也是最终版本,此次更新中添加了一系列新功能,包括:
- 新开发模式:新版本引入了一种新的开发模式,该模式可以通过简单的配置或标志来实现自动重载以及扩展的调试信息,使切换生产设置变得更加容易。可以使用
application.conf
中的development=true
来激活该功能。 - 支持 Java HTTP 客户端:Java 11 引入了基于响应流的 HTTP客户端。现在,Ktor 客户端也针对 JVM 支持此功能。
- 支持通过 HttpRequestBuilder 发送 cookie :在 HttpRequestBuilder 中添加了一个名为
cookies
的新方法,该方法可以轻松发送 cookie 。 - 支持预压缩文件:添加
preCompressed
功能,可以发送已经压缩的文件,并避免 Ktor 尝试进一步压缩内容。 - 支持 CORS 中的自定义标头。
- 引入了对 WebSocket 和 deflate 扩展的
- 支持服务器会话中的密封和嵌套类。
- OkHttp WebSocket 创建重写。
- 正确的异常处理:Ktor 现在可以正确处理意外异常。如果异常在管道中发生,它将传播到主机,并作为一个 500 Internal Server Error 与实际的异常对象一起返回。这样可以更好地处理应用程序本身的异常,并且不再需要为特定的状态代码配置状态页。
详细变更日志:https://blog.jetbrains.com/ktor/2020/12/22/ktor-1-5-0-released/