问题标签 [ktor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1870 浏览

json - 如何使用内容协商将 json 转换为 ktor 中的 kotlin 对象?

我是 Ktor 的新手,我正在尝试构建一个处理登录凭据的后端。我正在尝试使用内容协商功能将 JSON 转换为本机 Kotlin 对象,但我不断收到不受支持的媒体类型异常。这是我的代码:

这是我正在尝试转换的传入 Json,我通过 XMLHttpRequest 发送:

我在网上搜索了答案,但找不到我做错了什么。有人可以帮忙吗?

0 投票
1 回答
3083 浏览

ktor - Ktor:使用 JUnit 测试类的 Spek/KotlinTest 测试 REST 端点

我有一个简单的 hello world Ktor 应用程序:

使用 JUnit 测试类,我可以为它编写测试,如其文档中所述;如下:

但是,我想在 Spek 或 KotlinTest 中进行单元测试,无需 JUnit 的帮助,类似于我在 ScalaTest/Play 中进行的方式;以更具声明性的方式:

  1. 在测试期间向路由(即/)发送 FakeRequest。
  2. 获取页面内容,并检查字符串“hello”。

问题是我可以在 KotlinTest 或 Spek 中以更具声明性的方式编写上述测试吗?

0 投票
1 回答
4872 浏览

kotlin - Ktor Routing: How to factorize the routing functionality in an application/api?

My question is about the big picture behind routing functionality in Ktor; and scalability when it comes to design an API with large number of routes.

If I create an app like this:

Which is ok if I have an api/app with low number of routes. However in what style I should scale this approach for large number of routes (e.g., 30 routes and controller functions).

I would have a number of choices:

A large routing function: I would have a large Application.routingExample function that would hold all the routes, so I don't need to update the main.

A large main function: Would have a large function that would hold the calls to different smaller functions; but it would be repetitive; as for an API I want to serve them in the same port.

So my question is about the coding style: is there a way to to factorize the routing controller relationship?

0 投票
1 回答
1919 浏览

amazon-web-services - 如何在 AWS lambda 中运行 ktor 应用程序?

我找不到在 AWS lambda 中使用 ktor 应用程序的方法...

也就是说,我不需要启动嵌入式服务器或使用http://ktor.io/servers/engine.html中描述的外部服务器,我只需要“执行”管道。

我想这或多或少像 TestEngine 但我对 ktor 框架不太熟悉可以肯定

笔记 :

我已经找到了每个 lambda 运行一个 kotlin 函数的示例(恕我直言,最好的教程是https://aws.amazon.com/fr/blogs/machine-learning/use-amazon-rekognition-to-build-an-end- to-end-serverless-photo-recognition-system/)。

问题是我不想为每个函数管理一个 lambda(我想要每个 lambda 一个微服务,该微服务负责多个紧密耦合的操作)

0 投票
1 回答
2941 浏览

kotlin - 将 JWT 与 Ktor 一起使用并在声明中包含用户信息

我已经成功地在我的应用程序中包含了一个 jwt 身份验证令牌,并且能够限制对端点的访问。我想将用户的 ID 嵌入到 jwt 令牌中,但我正在努力如何在 Ktor 中实现 jwt 验证程序。

我为客户端创建了一个令牌,如下所示:

路线是这样设置的。authentication {} 块在服务器启动时运行,并且不允许使用 userId 创建验证程序。

这来自 jwt 示例:

这样做的正确方法是什么?我知道我需要为每个请求创建一个验证器,但不知道在哪里执行此操作,也不知道这是否可取。

0 投票
1 回答
317 浏览

reactjs - 如何使用 Gradle 将 Reason 和 Ktor 应用程序打包在一起?

我有以下结构:

我不知道如何构建一切,所以我可以:

  1. 在本地运行服务器,以便我可以调试
  2. 制作生产 tar(application例如使用插件)

生产

生产应如下所示:

  • ktor 作为主服务器
  • ktor 应用程序有 API
  • 所有 react JS/HTML 文件也由 ktor 提供

换句话说,我想从单个 Web 应用程序中提供所有内容。

我知道我可以制作 2 项单独的服务 - 一项用于反应,一项用于 API。但我想把它捆绑到一个应用程序中。

地方发展

地方发展要快。我正在考虑将 React 和 API 部分单独用于本地目的,因为这样更容易在本地运行。但是对于生产,我需要从单个应用程序中提供这两个服务。

我想拥有什么

是根中的单个 Gradle 并具有模块。虽然 ktor 可以是一个模块,但我不确定如何使用 react 模块。

0 投票
0 回答
501 浏览

spring - 是否可以同时使用 REST Docs、REST Assured 和 kotlin ktor?

有关此处可用技术的信息:

Spring REST 文档链接

放心链接

Ktor 后端链接

主要问题是: 我可以像使用Spring Rest Docs为Springjson payloads后端那样为ktor后端生成文档吗

Spring Rest Docs使用单元测试技术来生成 json 有效负载和描述片段。这个 asciidoctor 风格的片段稍后用于包含到手写文档中。

0 投票
2 回答
3986 浏览

kotlin - Ktor 无法在服务器上接收 POST 正文

我有以下服务器和客户端代码:

服务器:

客户:

因此,客户端只需在 POST 正文中向服务器发送“Client Hello”,服务器就会对此做出响应。但是我没有在服务器端看到正文的内容。我究竟做错了什么?

call.receiveText()总是空的。

0 投票
2 回答
3806 浏览

android - 尝试在 Android 上运行嵌入式 Ktor HTTP 服务器

我正在尝试将 Ktor 嵌入到 Android 服务中,以便在某个时候远程检查应用程序上的某些资产。

我正在关注本教程中的代码

当我尝试访问例如“192.168.2.105:7070”上的链接时出现此错误:

这是代码。服务已在清单中注册,我使用以下命令从 adb 启动它: adb shell am startservice com.mypackage.service/.KtorFetchService

这是模块gradle文件:

这是项目的 gradle 文件:

该设备是带有 Android 5.1.1 (API 22) 的 Odroid C2 我正在使用在 MacOS 10.13.3 上运行的 Android Studio 3.1 和 JRE 1.8。

0 投票
2 回答
2192 浏览

postgresql - 不支持 postgresql 事务隔离级别 4

我正在尝试创建表(postgres + 暴露 + ktor + JDBC),我得到了那个错误。

在下面找到我的配置:

构建.gradle

你好.kt

这是我遇到的错误