1

事情是这样的,我有几个项目,其中客户有一个可怕的后端定义,以多种格式返回数据和很多我不需要的东西。由于我在做移动 webapps,我在 php 中创建了一个中间层,使用 slimframework (www.slimframework.com),它基本上给了我一个 RESTFUL 语法,也删除了我不需要的所有数据,并且采用了我想要的格式 (JSON) . 当然,这个中间层将部署在客户后端,所以即使让我很容易前端实现,我有点担心性能,也给“链”增加了另一个断点。为了提高性能,每次调用我的 slimframework 时,我都会将唯一的 JSON 数据保存为缓存,并且我有一个文本文件,我可以在其中轻松配置每个请求的最大秒数。

从技术上讲,我用 curl 阅读真正的 Web 服务,转换为 PHP 对象,删除并更改我需要的所有数据,然后制作一个 json_encode ......另外,我还有另一个想法,比如在 cron 中创建一个批处理,拉所有来自客户的 Web 服务并生成本地 jsons ......不要担心没有得到最新的数据,因为它是一个视频追赶应用程序,所以我缓存了每个 WS,但最终的 url 没有被缓存。

我的工作流程有更简单的解决方案吗?

4

1 回答 1

1

听起来不错。

当然,您添加了一个新的潜在故障点,但您也添加了一个新的位置,可以在该位置上灵活地捕获和处理问题——听起来现有的后端本身不能被信任。对您的拦截层进行单元/压力测试,并完全相信您不会增加不必要的新风险。

至于性能?好吧,与任何事情一样,您需要对其进行基准测试,然后平衡结果与其他好处。我喜欢一个好的抽象层,只要你没有看到拒绝服务的性能下降(而且我不明白你为什么应该这样做),它几乎肯定是值得的。

如果没有别的,您将抽象出您似乎无法控制的数据后端,这将有效地让您完全灵活地在某天将其切换为其他东西。

如果后端自发改变?好吧,至少您只需要调整拦截层的一些隔离部分,而不是依赖于第三方数据的面向客户的前端的每一部分。

总之,在我看来,这似乎是一个非常强大的解决方案,我认为您绝对应该继续使用它。


当然,您不需要太多。由我们决定有多少是合适的。我通常发现是一个不可接受的答案。:)

于 2013-02-16T18:22:59.140 回答