Desarrollo un pequeño servidor en PlayFramework2/Scala que tiene que recuperar datos de múltiples WS (REST/JSON), manipular los datos de estos WS, luego componer y devolver un resultado.Múltiples llamadas de WS en una acción, ¿cómo manejar los objetos Promesa?
Sé cómo llamar al uno WS, manipular los datos y devolver una respuesta Async. Pero no sé cómo llamar al sucesivamente varios servicios web, manejar los datos entre cada llamada y generar una respuesta agregada.
Ejemplo:
- buscar a la lista de mis canciones preferidas de WebService Un
- entonces, para cada canción, ir a buscar el detalle artista WS B (una llamada por canción)
- luego, generar y devolver algo (lista agregada, por ejemplo) utilizando el A y B respon ses
- a continuación, devuelve el resultado
estoy bloqueado por los procesamientos asíncronos de WS API (WS.url(url).get => Promise[Response]
). ¿Tengo que apoyarme en Akka para resolver este problema?
Gracias.
Gracias por su respuesta. Analizo y pruebo esta solución lo antes posible. – YoT
@julien ¿Qué sucede si cualquiera de las llamadas al servicio web expira o devuelve un 500? getOrElse? –
La promesa se canjeará con un valor [Lanzado] (http://www.playframework.org/documentation/api/2.0/scala/play/api/libs/concurrent/Thrown.html). Puede manejar este caso usando [extender] (http://www.playframework.org/documentation/api/2.0/scala/index.html#play.api.libs.concurrent.Promise) por ejemplo. –