Ktor
Ktor 是一个用于创建连接系统的 Web 应用程序框架。 您可以使用它来创建服务器端和客户端应用程序。 它支持多个平台,包括 JVM、JavaScript 和 Kotlin/Native。
IntelliJ IDEA 提供以下功能以处理 Ktor 项目:
一个用于 创建新项目的向导。
专门用于运行和调试 Ktor 项目的运行配置。
在项目内穿梭于不同路径之间。
生成 路由的测试并为 Ktor 插件添加示例代码。
代码编辑 支持,包括自动补全和重命名路由名称。
生成 OpenAPI 规范。
将 项目迁移到最新的 Ktor 版本。
创建一个新的 Ktor 项目
在欢迎屏幕上,点击 新建项目。
否则,请转到主菜单的
。在 新建项目 向导中,从左侧列表中选择 Ktor。
在右侧窗格中,您可以指定以下设置:
名称 :请指定项目名称。
位置 :指定项目的目录。
构建系统 :选择所需的 构建系统。 这可以是 Gradle 使用 Kotlin 或 Groovy DSL,或 Maven。
网站 :指定用于生成包名称的域。
工件 :此字段显示生成的制品名称。
Ktor 版本 :选择所需的 Ktor 版本。
引擎 :选择用于运行服务器的 engine。
配置在 :选择是否 在代码、HOCON 或 Yaml 文件中 指定服务器参数。
添加示例代码 :使用此选项添加插件的示例代码,这些代码将添加到下一页。
在下一页,您可以选择一组 插件——提供 Ktor 应用程序常见功能的构建模块,如身份验证、序列化和内容编码、压缩、cookie 支持等。
点击 创建 并等待 IntelliJ IDEA 生成项目并安装依赖项。
运行 Ktor 应用程序
您可以通过以下方式之一运行服务器 Ktor 应用程序:
要从编辑器运行应用程序,请按照以下步骤操作:
点击
main
函数旁边的边框图标,然后选择 运行 'ApplicationKt'。请等待 IntelliJ IDEA 运行该应用程序。 运行工具窗口应显示以下消息:
INFO ktor.application - Responding at http://0.0.0.0:8080这意味着服务器已准备好接受 http://0.0.0.0:8080 地址的请求。
导航
在 Search Everywhere 中查找路线
要使用 Search everywhere在您的应用程序中查找特定路线,请按照以下步骤操作:
按 Shift 两次以打开搜索窗口。
开始输入路线名称。
要缩小您的搜索范围,请点击窗口工具栏上的 筛选 图标
,然后选择 URLs。
在路由及其用法之间导航
要在项目中导航到路线及其用法,请执行以下操作之一:
请将文本光标放在所需的路径或 URL,然后按 Ctrl+B。
按住 Ctrl 并悬停在路径或 URL 上。 当一个 URL 变成超链接时,按住键点击它。
点击路径或 URL 旁边的
图标,并从弹出窗口中选择 转到声明或用法。
IntelliJ IDEA 将显示相关路径/URL:

在 Endpoints 工具窗口中显示路径
要查看在您的 Ktor 应用程序中定义的所有 HTTP 或 WebSocket 端点,请使用 Endpoints 工具窗口:
点击路径旁边的
图标,并在弹出窗口中选择 显示模块的所有端点。
在调用的 Endpoints 工具窗口中,您可以看到应用程序中定义的所有路由。
如果 Ktor 服务器正在 运行 ,您可以使用 HTTP 客户端 发送请求来立即查看响应或在编辑器中打开它。
在 OpenAPI 选项卡上,您可以看到此路线的 OpenAPI 规范。
生成代码
为插件生成代码
IntelliJ IDEA 允许您使用 代码补全弹出窗口 为 Ktor 插件生成代码:
请将文本光标放在 模块内,开始输入
install
,然后从列表中选择必需插件。按下 Enter。 IntelliJ IDEA 为所选插件生成代码并将所需依赖项添加到构建脚本中。
生成 HttpClient
IntelliJ IDEA 提供了快速将 HttpClient添加到项目中的功能:
开始输入 ktor-client ,从列表中选择此操作,然后按 Enter。
IntelliJ IDEA 会创建
HttpClient
实例并将所需的客户端依赖项添加到构建脚本中。
创建测试
IntelliJ IDEA 允许您为模块、路由组或单个路由生成测试。 此功能支持 HTTP 和 WebSocket 端点。 要生成测试,请按以下步骤操作:
将文本光标放置在所需的模块或路由处,按 Alt+Enter ,然后选择以下操作之一:
为 Ktor 模块创建测试
为 Ktor 路由创建测试
为 Ktor 路由创建测试
在调用的对话框中,您可以指定测试类名称、选择所需的路由并编辑各个测试名称。
点击 OK。
IntelliJ IDEA 将创建一个包含所选路由测试请求的测试类。
您可以从 测试中学习如何测试 Ktor 服务器。
编辑代码
完成路线名称
IntelliJ IDEA 允许您 补全路由名称:
将文本光标放在接受 URL 的参数处并按下 Ctrl+Space。 编辑器将向您显示可用路径。
完整配置属性
如果您的项目将配置存储在 YAML file 中,您可以使用 autocompletion 来自动完成属性名称:
在配置文件中的任何位置放置文本光标,然后按 Ctrl+Space。 编辑器会向您显示此组的所有可用配置属性。
重命名路由
在 IntelliJ IDEA 中,您可以使用 重命名重构来重命名路由:
请将文本光标置于 route 名称处,然后按 Shift+F6。
指定一个新的路由名称,然后点击 重构。
提取应用模块
若要将放置在 embeddedServer中的代码提取到一个独立的应用程序模块,请按照以下步骤操作:
将文本光标放置在
embeddedServer
函数调用处并按 Alt+Enter。选择 从当前的 embeddedServer 块中提取应用程序模块 并按下 Enter。
在弹出的对话框中,指定一个模块名称,然后点击 提取。 IntelliJ IDEA 会在
Application
类上创建一个扩展函数,并将此函数的引用作为module
参数传递,例如:fun main() { embeddedServer(Netty, port = 8080) { routing { get("/") { call.respondText("Hello, world!") } } }.start(wait = true) }fun main() { embeddedServer(Netty, port = 8080, module = Application::module).start(wait = true) } fun Application.module() { routing { get("/") { call.respondText("Hello, world!") } } }
OpenAPI
OpenAPI Specification(OAS)是一种 REST API 的描述格式。 Ktor 插件提供了为服务器端 Ktor 应用生成 OpenAPI 文档的功能。 插件为使用 字符串路径模式 或 类型安全 路由定义的所有应用程序端点生成 路径。 为了生成更好的 OpenAPI 文档,该插件会分析服务器应用程序中端点的代码,例如:
生成 OpenAPI 规范
要为 Ktor 应用程序生成 OpenAPI 规范,请按照以下步骤操作:
将文本光标放置在 embeddedServer函数调用处,然后按 Alt+Enter。
从弹出窗口中选择 为当前模块生成 OpenAPI 文档 然后按下 Enter。
请等待 IntelliJ IDEA 通过以下路径在应用资源中生成 OpenAPI 规范: resources/openapi/documentation.yaml 。
预览 OpenAPI并测试您的应用程序
您可以按照 预览 OpenAPI 规范 中所述使用集成的 Swagger UI 预览 OpenAPI 规范。 生成的 Swagger UI 可用于按以下方式测试您的应用程序端点:
在预览中展开所需的端点并发出请求。
在 HTTP 编辑器中测试端点
IntelliJ IDEA 允许您使用 代码编辑器中的 HTTP 客户端测试 HTTP 和 WebSocket 端点:
将文本光标置于所需路径,按 Alt+Enter ,然后选择 在 HTTP 客户端中生成请求。
在已打开的文件中,调整请求参数。
点击
请求。
迁移项目
迁移项目
在 IntelliJ IDEA 中,您可以通过以下一种方式将 Ktor 项目迁移到最新版本:
在打开使用以前版本 Ktor 的项目时,IntelliJ IDEA 建议您将此项目或特定模块迁移到最新版本。
您可以迁移项目/模块或点击 操作 配置迁移级别或取消迁移并禁用此弹出窗口。
请按 Ctrl+Shift+A ,找到 将 Ktor 迁移到最新版本 操作,然后按 Enter。
配置迁移级别
要配置迁移级别或完全禁用迁移,请使用
页面上的相应选项。