加入infoq企业会员 ,携手员工共同成长,企业内员工可免费领取《极客时间》7天会员
写点什么

kotlin异步框架ktor 2.0发布,提供新的插件特性-金马国际

作者:andrea messetti

  • 2022 年 5 月 18 日
  • 本文字数:1094 字

    阅读完需:约 4 分钟

ktor 是一个用于创建异步客户端和服务器应用程序的框架。经过 1 年多的开发,于近日,在带来新特性的同时,也带来了破坏性的变化。

 

在服务器端,ktor 2.0 引入了名为“插件()”的新特性(以前被称为“features”),以提高框架的可扩展性。顾名思义,它允许我们实现插件架构,简化了功能扩展。

 

它还引入了支持,这是对 ktor 1.6 中添加的支持的补充。其他改进包括随机端口支持、经过改进的测试 api、类型安全的路由、xml 序列化和插件子路由(subroutes for plugins)。

 

在客户端,ktor 2.0 带来了一个经过简化的 api,用于管理常见的 http 请求;响应现在是httpresponse类型,可以简单地使用 bodyastext 访问响应体。

 

重试现在成为客户端的内置功能,允许指定两次重试之间的时间间隔。ktor 2.0 还在客户端增加了一个内容协商特性,而在服务器端该特性之前就已经实现。

 

除了上述功能外,客户端还包括用于身份认证的快捷 api,如basic()bearer()辅助函数。

 

为了帮助开发者从以前的版本迁移到新的 2.0 版本,ktor 团队提供了相关文档,并在中提供了一个迁移工具,其目的是修复所有与破坏性变化和重构包相关的问题。

 

使用 ktor 创建一个简单的服务器非常简单,如下所示:

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”。

 

ktor 应用程序可以托管在任何支持 servlet 3.0 api 的 servlet 容器中,如 tomcat,或使用 netty 或 jetty 独立运行。ktor 使用以直观的命令式流程实现异步编程,而为了避免阻塞线程,上述所有服务器容器都使用异步 i/o 工具。

 

此外,ktor 支持协议,用进行指标监测,用和进行授权。它还支持各种模板引擎,如、和。

 

ktor 是的官方产品,由 jetbrains 的团队和社区共同开发。

 

要进一步了解如何使用 ktor 创建基于微服务的应用,可以阅读 jetbrains 开发宣传副总裁在 infoq 上发布的这篇。


作者简介:

andrea messetti 是 dxc technology 的一名软件架构师,之前在惠普工作。目前,andrea 专注于 java 云原生应用程序和微服务。与计算机科学相关的东西(ml、区块链、边缘计算)他都喜欢研究。


原文链接:


2022 年 5 月 18 日 08:001428

评论

发布
暂无评论
发现更多内容
网站地图