2016-05-29 4 views
3

Согласно документации Lagom, мы можем определить внешний URI службы (как показано ниже) и получить его из ServiceLocator.Каков самый простой способ использовать внешнюю службу REST в Лагоме?

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

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

Что это самый простой способ вызова внешнего REST API в ЛАГЕ?

Я рассмотрел использование WsClient в Лагоме, но я не выбрал его. Lagom включает в себя только WsClient для Scala, поэтому он дает значения результата не как java.util.concurrent.CompletionStage, а scala.concurrent.Future. Это заставляет боль сочетаться с другими API-интерфейсами Lagom, такими как CompletionStage#doWithService.

+0

Это действительно хороший вопрос. +1 –

+0

Вот пример проекта java (не проект lagom), который использует библиотеки Lagom (а не всю структуру) для использования сторонних API: https://github.com/ignasi35/lagom-client-demo – ignasi35

ответ

0

Способ использования сторонних услуг REST от lagom заключается в написании спецификации REST третьей стороны с использованием Lagom Descriptor.

Представьте, что ваш код хотел взаимодействовать с API слабину, вы бы создать slack-api проект в вашем приложении и создать Slack descriptor там (вам не нужно будет создать slack-impl конечно).

Затем на вашем fancy-impl кода, который вы будете зависеть от slack-api и в вашем FancyServiceImpl реализации вы бы впрыснуть SlackService в конструкторе.

PS: Суть - это код scala, но эта же идея применима к Java DSL от Lagom.

+0

Благодарим вас за ваш ответ! Я попробую. –