Restful API的适配器代理
这是一个一般性的“什么技术可用”问题 我的公司提供了一个带有RESTful API的web应用程序。然而,对于我的需求来说,它太慢了,而且一些结果的格式很糟糕 我想用一个代理/适配器服务器包装他们的restful服务器,因此当您连接到代理时,您会得到restful API,我希望真正的API能够提供 因此,它需要做几件事:Restful API的适配器代理,rest,proxy,adapter,Rest,Proxy,Adapter,这是一个一般性的“什么技术可用”问题 我的公司提供了一个带有RESTful API的web应用程序。然而,对于我的需求来说,它太慢了,而且一些结果的格式很糟糕 我想用一个代理/适配器服务器包装他们的restful服务器,因此当您连接到代理时,您会得到restful API,我希望真正的API能够提供 因此,它需要做几件事: 通过大多数请求 缓存一些请求 在原始服务器上执行一些额外请求,以检测请求是否可缓存 例如:有一个对记录中某个字段的请求:GET/records/id/field,这
- 通过大多数请求
- 缓存一些请求
- 在原始服务器上执行一些额外请求,以检测请求是否可缓存
feedbeef
存在GET/records/1/field2缓存,那么在提供缓存版本之前,我需要检查原始服务器是否仍然具有指纹feed beef
- 修复某些响应的标题-例如,基于路径的内容类型
- 例如,对一些大型内容进行流处理
虽然我可以修改客户机以实现此功能,但这样的代码对于其他客户机(不同的语言)是不可重用的,并且会使客户机逻辑复杂化
我看了一下clojure/ring是否能做到这一点,虽然它有一个很好的代理中间件,但据我所知,它不能处理流媒体内容——整个100Mb都必须下载。此外,它还不包括任何缓存逻辑
我看了一下squid是否能做到这一点,但我不熟悉这项技术,它似乎主要关注的是传递请求,而不是动态修改请求
我正在寻找可能找到正确技术来实现这一点的提示。如果学习一门新的语言能让我获得一种非常简单的方法,我对语言基本上是不可知的。看起来很有用——尽管我还不知道它是否能流式处理代码转换。我认为您应该选择一种更容易实现自定义业务逻辑的平台。以下web应用程序框架提供了与REST API的轻松连接,并允许您创建可以用作REST代理的web应用程序:
- (Java+Scala)
- +Node.js(Javascript)
- (红宝石)
- 对于缓存一些响应的用例,您可以创建一个规则。这样它就不会碰到原始端点
- 可以模拟对原始API的请求,并且可以检查响应
- 您可以模拟延迟李>
(注意:这是一个无耻的插件,我是Beeceptor的作者,认为它应该对您和其他开发人员有所帮助。)Wow,6年前被问到,但仍然没有被接受的答案。我正在考虑做同样的事情,并期望这会被多次解决。如果可能的话,我会尽量避免从头开始写代理。如果你解决了这个问题,请告诉我!