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

标签 java lagom

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

ThisBuild 中的 lagomUnmanagedServices := 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,因此它提供的结果值不是 java.util.concurrent.CompletionStage,而是 scala.concurrent.Future。 与其他 Lagom API(如 CompletionStage#doWithService)结合起来很痛苦.

最佳答案

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

假设您的代码想要与 Slack 的 API 交互,您将在您的应用程序中创建一个 slack-api 项目并创建 Slack descriptor在那里(你当然不需要创建一个 slack-impl)。

然后,在您的 fancy-impl 代码中,您将依赖于 slack-api 并在您的 FancyServiceImpl 实现中注入(inject) 构造函数中的 SlackService

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

关于java - 在 Lagom 中使用外部 REST 服务最简单的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37508302/

相关文章:

java - 在理解 Java 泛型教程方面需要帮助

java - 关于Java中数组的问题

java - 无法弄清楚如何将回溯合并到我的伪递归方法中

lagom - Lagom 框架的新微服务

akka-http - Akka http 与 Lagom

java - 如何在构造函数之后添加组件(例如使用 mouseClicked 事件)

java - 用于 Java 电话号码屏蔽的正则表达式

scala - Scala Lagom开发模式和Docker

java - Lagom PubSubRef 订阅者删除消息