1. 首页
  2. >
  3. 编程技术
  4. >
  5. Java

kotlin web框架 Ktor 1.5.0发布

我们很高兴地宣布Ktor 1.5.0的发布,它包含了新的功能,错误修复和新的文档!我们将继续努力。


kotlin web框架 Ktor 1.5.0发布


新功能

1.5.0 是今年的第三个也是最后一个版本,按照我们的承诺,一年有三个主要或次要版本,每月至少发布一个补丁。我们很高兴地说,到目前为止,我们已经成功地或多或少地遵守了这个承诺,尽管有时会有一些延迟。


kotlin web框架 Ktor 1.5.0发布


在这次小更新中,我们有一系列的新功能,包括:

新的开发模式

Ktor提供了一系列针对开发的功能,例如自动重装以及扩展的调试信息。虽然这两种功能在开发过程中都很有用,但在生产模式下可能会减慢速度。在1.5.0中,我们引入了一个新的开发模式,通过简单的配置或标志来实现这些功能。这也使得在生产模式下切换设置更加容易。

该功能可以在application.conf中使用development=true激活。

这是一个突破性的变化,因为自动重新加载现在只在这个新模式下启用。

支持Java HTTP客户端

Java 11引入了一个基于反应式流的HTTP客户端。Ktor客户端

现在,当以JVM为目标时,支持这个功能。

为了使用它,只需向HttpClient传入Java.HttpClient作为参数。

当然,你确实需要Java 11来实现这个功能。

支持通过HttpRequestBuilder发送cookie

如果使用HttpRequestBuilder,你现在有一个新的方法,名为Cookie,它允许你轻松地发送Cookie。

支持预压缩文件

很多时候你想发送已经压缩过的文件,避免Ktor试图进一步压缩内容。有了preCompressed功能

你现在可以很容易地做到这一点。

感谢我们的社区贡献者guicamest的贡献。

CORS中对自定义头文件的支持

我们现在支持允许在CORS请求中使用自定义标题。虽然通常不建议在请求中允许任何头,但你可以用Ktor指定某些遵循特定模式的自定义头。

感谢Joze的贡献。

实验性的WebSocket和Deflate扩展

我们引入了对 WebSocket 和 deflate 扩展的支持。这提供了RFC-7692的实现。

要使用它,请安装该功能

并简单地用两个新方法之一引用它:extension和extensionOrNull。

需要注意的是,这是一个实验性的API,我们很希望得到一些反馈。

支持服务器会话中的密封和嵌套类。

现在,你可以在你的服务器会话对象中拥有密封/嵌套类。

OkHttp WebSocket创建覆盖

您现在可以提供一个OkHttp WebSocket.Factory,它将在创建websocket时被考虑在内,让您在使用OkHttp时更加灵活。感谢Chris的贡献。

适当的异常处理

Ktor现在可以正确处理意外的异常。如果在管道线中发生了异常,它将被传播到主机上,并以500内部服务器错误和实际异常对象的形式返回。这使得应用程序本身能够更好地处理异常,并且不再需要为特定的状态代码配置状态页面。

除了上述功能外,1.5.0还带来了其他功能和bug修复。

新文件

我们2020-2021年的路线图中,有一项是改善入职体验,当然包括更好的文档。特别是我们重新编写了很多内容,并将其结构化得更好。我们现在已经完全完成了大概一半的内容,可以供你消费和反馈。请注意,仍然有一些旧的条目,而且随着我们推送新的内容,其中一些内容将被删除(并设置重定向)。


kotlin web框架 Ktor 1.5.0发布


鸣谢

除了上述的贡献,我们还要感谢所有对Ktor的贡献者,无论是代码贡献,还是反馈和报告问题。

下载安装

像往常一样,你可以在Maven Central上获取位,或者使用Package Search直接在你的项目中搜索/管理Ktor的依赖关系。

我们希望你喜欢这个版本,并在2021年与你见面,有更多的内容。

节日快乐!