2016-05-29 70 views
3

根据Lagom文档,我们可以定义外部服务URI(如下所示),并可以从ServiceLocator中获取。在Lagom中使用外部REST服务最简单的方法是什么?

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

+0

这是一个非常好的问题。 +1 –

+0

下面是一个使用Lagom库(不是整个框架)来消费第三方API的示例java项目(不是一个lagom项目):https://github.com/ignasi35/lagom-client-demo – ignasi35

回答

0

从lagom消费第三方REST服务的方法是使用Lagom Descriptor编写第三方的REST规范。想象一下你的代码想要与Slack的API交互,你会在你的应用中创建一个slack-api项目并在那里创建Slack descriptor(当然你不需要创建slack-impl)。

然后,在您的fancy-impl代码中,您将取决于slack-api和您的FancyServiceImpl实现,您将在构造函数中注入SlackService

PS:要点是scala代码,但Lagom的Java DSL的想法也一样。

+0

谢谢你你的答案! 我会试试看。 –

相关问题