在 Lagom 中使用外部 REST 服务的最简单方法是什么?

Kaz*_*oro 6 java lagom

根据 Lagom 文档,我们可以定义外部服务 URI(如下所示)并且可以从 ServiceLocator 获取它。

lagomUnmanagedServices in ThisBuild := Map("weather" -> "http://localhost:3333")

http://www.lagomframework.com/documentation/1.0.x/ServiceLocator.html#Communicating-with-external-services

在 Lagom 中调用外部 REST API 的最简单方法是什么?

我考虑过在 Lagom 中使用 WsClient,但我没有选择它。Lagom 仅包含用于 Scala 的 WsClient,因此它提供的结果值为 not java.util.concurrent.CompletionStagebut scala.concurrent.Future。与CompletionStage#doWithService等其他 Lagom API 结合起来很痛苦。

ign*_*i35 2

使用 lagom 的第 3 方 REST 服务的一种方法是使用 Lagom 编写第 3 方的 REST 规范Descriptor

想象一下您的代码想要与 Slack 的 API 交互,您可以slack-api在应用程序中创建一个项目并在那里创建Slack 描述符slack-impl(当然您不需要创建)。

然后,根据您fancy-impl所依赖的代码slack-api,并在FancyServiceImpl实现中将注入SlackService构造函数中。

PS:要点是 scala 代码,但同样的想法也适用于 Lagom 的 Java DSL。