问题标签 [http4k]

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 回答
135 浏览

ssl - 在 http4k 中为 Jetty 配置 SSL

我正在尝试使我的 http4k REST API 需要 SSL,但我无法弄清楚如何为 SSL 配置 Jetty。

0 投票
2 回答
137 浏览

kotlin - 为什么 Kotlin 类型推断不适用于功能接口?

我正在开发一个http4k网络应用程序。Http4k为 http 处理程序和过滤器(又名拦截器)提供了一个很好的功能方案。

我想写一个简单的过滤器,所以我创建了一个函数,它返回一个Filter

然而 Kotlin 抱怨(编辑行号以匹配上面的示例。)

为什么 Kotlin 不能推断类型实际上是相同的?

0 投票
3 回答
673 浏览

kotlin - 如何使用 http4k 公开招摇 UI?

我正在使用他们的Contract APIs构建一个带有http4k 框架的微服务。我可以轻松地在例如上公开 swagger API 描述 JSON。和/swagger.json

有没有一种简单的方法来公开招摇 UI,以便 1)我可以指定它可用的路径。(例如。/swagger-ui) 2) UI 将被预先配置为从descriptionPath上面指定的获取描述 JSON。

一个理想的 API 看起来像

0 投票
1 回答
57 浏览

kotlin - 在 kotlin 中使用高阶函数初始化类

Kotlin 中的高阶函数:

我有一个使用 wto 高阶函数的类:

我在对象内部定义了 getData 函数。

现在,我无法理解如何初始化类?

如何从 MyClass 类中调用此函数:

报告.kt

repo1.kt

0 投票
1 回答
132 浏览

docker - 为什么用“不权威”响应我的 heroku 托管容器应用程序

我尝试在Heroku中将我的简单 Web-App作为 Docker Container运行。在本地构建和运行容器时一切正常。

但是在访问生成的端点https://html5-landingpage-buddah.herokuapp.com/ Heroku 响应 HTTP 400 错误请求和消息“非权威”

Heroku 中的日志没有多大帮助:

我对该错误进行了研究,但没有发现任何有用的信息。同样在 Heroku 中重新创建应用程序,重命名 URL 并将应用程序移动到另一个区域也没有帮助。


这是从重启到 Web 应用程序上第一个请求的日志:

0 投票
0 回答
184 浏览

json - Kotlin http4k 读取响应为 JSONObject (org.json)

作为 kotlin 和 http4k 的初学者,我正在尝试阅读 jenkins 中构建作业的 json 响应。我的示例代码如下

我正在寻找一种方法来读取Responsefrom client(request)org.json.JSONObject这样我就可以从中读取值。

我正在寻找一些可以帮助我理解如何做到这一点的指针。

0 投票
1 回答
145 浏览

docker - 使用 gradle 作为构建工具为 Kotlin http4k 后端创建 Docker 映像

我正在尝试为 Kotlin http4k 后端构建一个 docker 映像,但我无法让它正常工作。我无法创建一个胖 jar,所以当我尝试运行图像时我的依赖项丢失了。

所以我得到一个ClassNotFound例外。

这是我的build.gradle文件:

这是我的Dockerfile

我还尝试了一些 gradle 插件,它们应该使我能够构建一个 fatjar,但我没有让它工作。

0 投票
1 回答
82 浏览

kotlin - 如何理解 Kotlin 函数式接口与里面的伴随对象?

我想获得一些帮助以了解有关 Http4korg.http4k.core包中使用的功能接口的 Kotlin 代码片段

我不明白Filter界面,尤其是companion object部分。一个典型的功能界面是这样的

你可以创建一个 lambdaisEven

根据这个简单的例子,看起来接口Filter扩展了另一个接口(HttpHandler) -> HttpHandler?然后它定义了一个函数签名companion object?这个对吗?这部分的companion object真正含义是什么?

0 投票
2 回答
156 浏览

java - 如何使用 http4k 验证请求来自 Google Cloud Platform 上的 Twilio?

我有一台使用 Kotlin 1.5、JDK 11、http4k v4.12 的服务器,还有使用 Google Cloud Run 托管的 Twilio Java SDK v8.19。

我使用 Twilio 的 Java SDK 创建了一个谓词RequestValidator

这可以使用Twilio 提供的示例来工作,正如 Kotest 单元测试所演示的那样。

(测试和示例代码不匹配 - 但OperatorAuth它是一个应用twilioAuthPredicate, 并ApplicationProperties从 .env 文件中获取 Twilio auth 密钥的类。)

但是,除了这个简单的示例之外,无论是在创建单元测试时还是在运行时,都没有其他请求起作用。所有 Twilio 请求均未通过验证,我的服务器返回 401。Twilio 网站中的信息完全不透明。这令人难以置信的沮丧。它没有告诉我它是如何计算哈希的,所以我不知道出了什么问题。

这是一个使用从日志中收集的真实值的示例测试(尽管我已经编辑了标识符)。

有时验证会因为 Google Cloud 而失败。我之前曾在 Google Cloud Functions 上托管我的服务器,直到我发现 GCF 会默默地省略部分 URI https://github.com/GoogleCloudPlatform/functions-framework-java/issues/90

还有一个问题是,如果请求被“修改”,例如,如果我将 Twilio 回调 URL 设置为包含查询参数,例如https://my-gcr-server.app.run/twilio/callback?type=recording,则 Twilio 签名会忽略此参数,但在验证身份验证时无法知道哪些参数Twilio 无视。如果标题被更改,也是如此。

是否有验证请求来自 Twilio 的工作方法?还是替代验证解决方案?

更新

我刚刚发现 Twilio 的RequestValidator测试确实不足,只有一个例子RequestValidatorTest

0 投票
1 回答
106 浏览

kotlin - http4k 路由文档

我有一个旧的 kotlin 应用程序,它使用 http4k 作为休息端点。
应用程序很大,并且有几个独立运行的模块。这些模块公开routes 和嵌套routes.

作为一个管理这个应用程序的人,我想知道所有可能的路由都有哪些并记录它们(如果可能类似于 Open API,但 Open API 需要单独定义路由,没有自动检测)。有没有办法爬取并检查所有可能的路线?