我有一堆现有的REST服务(下面的#1和#2)在不同的端点上运行,这些端点仅在内部使用。现在,我想使用Spray从外部公开其中一些REST API(API-1和API-2),因为此外部端点还将提供一些其他API(API-3,API-4)。

有没有简单/推荐的方法来将外部REST请求转发到我的新端点到现有REST端点?

最佳答案

听起来您想要的是拟议的proxyTo指令:

path("foo") {
  get {
    proxyTo("http://oldapi.example.com")
  }
}

(或更可能是proxyToUnmatchedPath)。有一个开放的问题:

https://github.com/spray/spray/issues/145

看起来有人一直在为此工作;这是喷雾叉中的提交:

https://github.com/bthuillier/spray/commit/d31fc1b5e1415e1b908fe7d1f01f364a727e2593

但是该提交似乎尚未出现在主Spray仓库中。您可以在问题页面上询问其状态。

另外,这是CakeSolutions的博客文章,介绍如何手动进行代理:

http://www.cakesolutions.net/teamblogs/http-proxy-with-spray

该页面上的评论指出Spray有一个未记录的东西ProxySettings,并指向它的以下测试:

https://github.com/spray/spray/blob/master/spray-can-tests/src/test/scala/spray/can/client/ProxySpec.scala

更新; Soumya已在喷雾用户Google网上论坛向Spray小组询问了有关此问题的信息:

https://groups.google.com/forum/#!topic/spray-user/MlUn-y4X8RE

关于scala - 将HTTP/REST请求转发到Spray中的另一个REST服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27994748/

10-10 05:19