Kotlin logo

Kotlin

A concise multiplatform language developed by JetBrains

Ktor

Ktor 插件注册表现已发布!

Read this post in other languages:

Ktor 使用插件让您可以精细控制应用程序功能。 此前,第三方插件的管理方式与 Ktor 团队所提供插件的方式有所不同。 这对 Ktor 生态系统的发展造成了一定阻碍。

本月早些时候,在 Ktor 2024 产品路线图中,我们宣布了 Ktor 插件注册表。 此注册表现已正式推出。 它可用于向 Ktor 团队提交基于社区的插件、将插件分类以便搜索,以及为用户提供必要文档。

简介

目前,您可以通过在线项目生成器构建 Ktor 项目,为手头的任务选择合适的插件组合。 如下所示,您可以按名称和类别查看和搜索插件。 点击插件时,它的描述在右侧显示。 此描述包括将添加到应用程序中的代码的示例。 

点击 Add(添加)按钮,插件以及所需依赖项都会包含在项目中。 在本例中,我们包含 Thymeleaf 模板插件,该插件需要 Routing 插件。 您可以使用 Generate project(生成项目)按钮旁边的链接查看已添加的所有插件,并根据需要移除。

尽管此设置强大且灵活,但仍存在一个明显限制。 项目生成器只允许您选择 Ktor 团队制作的插件。 

Ktor 社区提供了许多优秀插件,但这些插件必须手动合并到项目中,而且基于社区的插件无法作为 Ktor 项目生成器中的选项提供。

借助插件注册表,团队现在可以提交自己的插件以将其包含在项目生成器中。 注册表本身不包含社区插件的源代码, 而是搭载一组资源来描述每个插件并指示其源代码所在位置。 使用这些资源,Ktor 团队可以获取、评估,以及整合插件以供公开使用。

如何提交插件

要提交插件,您首先必须复刻并克隆仓库,然后将资源添加到 Plugins 目录的子文件夹中,最后将更改作为拉取请求提交。 资源由 5 个独立的文件组成:3 个 YAML、1 个 Markdown 和 1 个 Kotlin。 相应示例位于注册表的 Templates 文件夹

最重要的文件是 manifest.ktor.yaml。 它定义了插件的核心细节,包括名称、先决条件、类别和主仓库。 您也可以更改其他资源的名称。 其他资源的标准名称及其用途如下所示:

group.ktor.yaml 插件制作团队的基本信息。
documentation.md 插件的描述,包括在项目生成器的插件选择屏幕中使用的代码段。
install.kt 用户选择当前插件时要插入生成的项目中的代码。
versions.ktor.yaml Ktor 版本与插件版本之间的映射。 也就是说,哪个版本的插件应该与哪个版本的 Ktor 一起使用。

接下来会发生什么?

提交插件后,Ktor 团队将尽力在下一个版本发布前对其进行评估。 疑问或问题将通过管理 GitHub 上拉取请求的常规程序解决。

如果一切顺利,插件将被添加到生成器中。 基于社区的插件将通过包含贡献者的姓名、图标和他们的网站的链接区分。 贡献的代码必须获得 Apache 2.0 许可,并且应遵循贡献指南中的指导。

在新版本社区插件发布后,Ktor 团队也将更新项目生成器。 后续版本的 Ktor 将针对每个社区插件的相应版本进行测试。 如果插件不再与当前版本的 Ktor 兼容,并且问题无法解决,插件将被排除。

结论

我们相信插件注册表将为 Ktor 社区提供巨大助力。 它将社区插件置于与常规插件同等的地位,并为框架用户带来了更多选择。 

我们建议现有提供商尽快提交插件,也希望这会激励其他团队创建并提交自己的插件。 有关详情,请加入 Kotlinlang Slack 的 Ktor 频道请求加入 Slack 的邀请)。

 

本博文英文原作者:

image description