希望实现这一目标:
对 REST API 的 HTTP 请求 -> 解析 -> 对另一个 API 进行异步调用 -> 使用异步调用的结果响应 http req。
目前,代码如下所示:
def getItems(param: String): LiftResponse = {
@volatile var resp: LiftResponse = new BadResponse
param.toLowerCase match {
case "something" =>
val req = Async call returning a Future
req onSuccess {
case items =>
resp = new JsonResponse(items map (decompose(_)), S.getResponseHeaders(Nil), S.responseCookies, 200)
}
req onFailure {
case fail => resp = new BadResponse
}
resp
case _ => new OkResponse
}
}
但它看起来像实施不佳。
编写上述内容的惯用 Scala 方式是什么?