网易首页 > 网易号 > 正文 申请入驻

Kotlin 异步框架 Ktor 2.0 发布,提供新的插件特性

0
分享至

作者 | Andrea Messetti

译者 | 平川

策划 | 丁晓昀

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

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

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

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

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

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

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

使用 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 使用 Kotlin coroutines 以直观的命令式流程实现异步编程,而为了避免阻塞线程,上述所有服务器容器都使用异步 I/O 工具。

此外,Ktor 支持 Websocket 协议,用 Micrometer 进行指标监测,用 JWT 和 OAuth 进行授权。它还支持各种模板引擎,如 Mustache、Thymeleaf 和 Velocity。

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

要进一步了解如何使用 Ktor 创建基于微服务的应用,可以阅读 JetBrains 开发宣传副总裁 Hadi Hariri 在 InfoQ 上发布的这篇教程。(https://www.infoq.com/articles/microservices-kotlin-ktor/)

作者简介:

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

https://www.infoq.com/news/2022/05/ktor-kotlin-framework/

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
库里:咱们有四次冠军,为啥单单删掉22年的合照?汤普森:它伤了我们的兄弟情!

库里:咱们有四次冠军,为啥单单删掉22年的合照?汤普森:它伤了我们的兄弟情!

林子说事
2024-06-15 16:38:11
16GB+1TB+骁龙8sGen3,仅售1473元起,堪称手机行业“新卷王”

16GB+1TB+骁龙8sGen3,仅售1473元起,堪称手机行业“新卷王”

科技阿维
2024-06-15 18:58:19
梅西双响!443天首次独造3球,连刷6纪录,又创阿根廷队史纪录

梅西双响!443天首次独造3球,连刷6纪录,又创阿根廷队史纪录

奥拜尔
2024-06-15 09:54:43
相泽南自曝引退后的生理需求, 大赞TW男:很温柔。

相泽南自曝引退后的生理需求, 大赞TW男:很温柔。

楚门记
2024-06-15 15:01:50
中国成会议讨论焦点,美欧看问题立场不同,G7炒作涉华议题“温差明显”

中国成会议讨论焦点,美欧看问题立场不同,G7炒作涉华议题“温差明显”

环球网资讯
2024-06-15 06:27:09
俄罗斯为何没有唐人街?与文化差异法律制度无关,这才是真正原因

俄罗斯为何没有唐人街?与文化差异法律制度无关,这才是真正原因

史政先锋
2024-05-12 19:32:09
遍地流氓时尚?漏裆裤、蟑螂头、姨妈裙,这些病态审美真长了见识

遍地流氓时尚?漏裆裤、蟑螂头、姨妈裙,这些病态审美真长了见识

秋姐居
2024-06-15 14:29:49
刚率国足进18强,伊万就点燃第一把大火,三大国脚被弃用永不征召

刚率国足进18强,伊万就点燃第一把大火,三大国脚被弃用永不征召

刺头体育
2024-06-15 18:25:16
你无意中摸过什么不该摸的东西?网友:对视的那一刻,我俩都懵了

你无意中摸过什么不该摸的东西?网友:对视的那一刻,我俩都懵了

文雅笔墨
2024-06-13 20:51:06
记者扮男客潜入采耳店,偷拍服务全过程:女技师、柔式按摩别有洞天

记者扮男客潜入采耳店,偷拍服务全过程:女技师、柔式按摩别有洞天

古今档案
2024-05-07 13:04:58
一场“泳装戏”,扯下了刘亦菲最后的“遮羞布”

一场“泳装戏”,扯下了刘亦菲最后的“遮羞布”

木子爱娱乐大号
2024-06-14 17:08:34
积极康复!王大雷骑公路自行车做训练,2小时19分骑行50.96km

积极康复!王大雷骑公路自行车做训练,2小时19分骑行50.96km

直播吧
2024-06-15 15:50:36
仅仅2集,拿下全国第1,央视军旅剧爆了,我敢说:李幼斌又要封神

仅仅2集,拿下全国第1,央视军旅剧爆了,我敢说:李幼斌又要封神

草本纪年
2024-06-15 19:15:26
6月15日俄乌:92国出席瑞士和平峰会,G7有收获,普京提和谈条件

6月15日俄乌:92国出席瑞士和平峰会,G7有收获,普京提和谈条件

山河路口
2024-06-15 14:28:58
中国制造!福登晒出比亚迪海豹新座驾:喜欢我的新车

中国制造!福登晒出比亚迪海豹新座驾:喜欢我的新车

直播吧
2024-06-14 21:53:37
温度记丨南方强降雨带要挪窝了?明日起广东雨势有望下降

温度记丨南方强降雨带要挪窝了?明日起广东雨势有望下降

金羊网
2024-06-16 07:39:21
国足进18强后,计划引进新的归化球员!20岁荷兰中场已获足协邀请

国足进18强后,计划引进新的归化球员!20岁荷兰中场已获足协邀请

十点街球体育
2024-06-15 10:35:45
说说成都事件

说说成都事件

林孤小姐
2024-06-12 17:25:00
罗斯人开始抛弃卢布,乌克兰愈战愈勇

罗斯人开始抛弃卢布,乌克兰愈战愈勇

非虚构故事
2024-06-13 13:28:47
某大佬:比赛含金量不够,不具升学价值,预赛比较水,48小时开卷

某大佬:比赛含金量不够,不具升学价值,预赛比较水,48小时开卷

杂谈哥闲谈
2024-06-15 22:47:24
2024-06-16 10:24:49
InfoQ
InfoQ
有内容的技术社区媒体
9914文章数 50045关注度
往期回顾 全部

科技要闻

iPhone 16会杀死大模型APP吗?

头条要闻

媒体:G7联合公报29次提到中国 对涉华议题大放厥词

头条要闻

媒体:G7联合公报29次提到中国 对涉华议题大放厥词

体育要闻

超燃欧洲杯!16岁巨星起飞 6秒狂奔40米

娱乐要闻

江宏杰秀儿女刺青,不怕刺激福原爱?

财经要闻

打断妻子多根肋骨 上市公司创始人被公诉

汽车要闻

东风奕派eπ008售21.66万元 冰箱彩电都配齐

态度原创

艺术
教育
家居
时尚
军事航空

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

教育要闻

AMC、学科词汇、纽伯瑞金奖.. 外滩小程序打卡,全场6折!

家居要闻

空谷来音 朴素留白的侘寂之美

可以轻松借鉴的通勤装扮,女人多穿“过膝裙”,优雅时尚大气

军事要闻

普京提停火和谈条件 美防长迅速回应

无障碍浏览 进入关怀版