我有一堆现有的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/