Scala Play WS客户端动态地进行并行REST调用

时间:2018-06-01 10:23:15

标签: scala playframework play-ws

在我的scala play框架应用程序中,我必须根据List中的url动态调用多个REST调用。

我遇到了多个电话的以下代码:

val futureResponse = for {
  responseOne <- WS.url(url1).get()
  responseTwo <- WS.url(url1).get()
  responseThree <- WS.url(url1).get()
} yield processCalls(responseOne, responseTwo, responseThree)

但是我怎样才能使它成为动态的,以便从列表中挑选网址,并且响应也存储在列表中以供进一步处理。

1 个答案:

答案 0 :(得分:1)

这样的事情:

val urls: Seq[String] = ...

val results: Future[Seq[WSResponse]] = 
    Future.seq(
        urls.map(url => wsClient.url(url).get)
    )