【发布时间】:2016-12-24 13:40:27
【问题描述】:
我有一个可以调用 /test 的端点,它在内部从第 3 方 API 获取数据,然后想要在返回响应之前进行一些转换。我挂断的地方是这个第 3 方 API 正在返回 gzip 压缩的 JSON,但我无法解码它(还)。我找到了decodeRequest directive,但似乎我必须在我的路由中使用它,而且我在这里更深一层。我有一个内部方法,一旦我收到一个名为do3rdPartyAPIRequest 的端点/test 的GET,我就会调用它,在那里我建立一个HttpRequest 并传递给Http().singleRequest(),所以作为回报,我有一个Future[HttpResponse]这是我想去的地方,但我被困在这里。
对于我以类似方式构建和使用的一些本地 API,我没有对响应进行编码,因此通常使用 Future[HttpResponse] 检查响应状态并通过 Unmarshal 转换为 JSON,但这需要额外的据我所知,在转换为 JSON 之前先一步。我意识到这个问题与this one 非常相似,但是这是特定于喷雾的,我无法将这个答案翻译成当前的 akka http
【问题讨论】: