According to Lagom documentation, we can define external service URI (like below) and can get it from ServiceLocator.
lagomUnmanagedServices in ThisBuild := Map("weather" -> "http://localhost:3333")
http://www.lagomframework.com/documentation/1.0.x/ServiceLocator.html#Communicating-with-external-services
What is the simplest way to call the external REST API in Lagom?
I considered using WsClient in Lagom, but I didn't choose it.
Lagom includes only WsClient for Scala, therefore it provides result values as not java.util.concurrent.CompletionStage but scala.concurrent.Future.
It makes the pain to combine with other Lagom APIs like CompletionStage#doWithService.
A way to consume 3rd party REST services from lagom is by writing the 3rd party's REST spec using a Lagom Descriptor.
Imagine your code wanted to interact with Slack's API, you would create a slack-api project in your app and create the Slack descriptor there (you wouldn't need to create a slack-implof course).
Then, on your fancy-impl code you would depend on slack-api and in your FancyServiceImpl implementation you would inject SlackService in the constructor.
PS: The gist is scala code, but same idea applies to Lagom's Java DSL.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With