我有一个连接到 2 个流行 API 的系统。我需要将每个数据聚合成一个统一的结果,然后可以对其进行分页。该项目的范围意味着该系统最终可能会支持 10 个 API。
每个 API 对每个请求施加了 50 个结果的最大限制。
聚合此数据的最佳方式是什么,以便它是可靠的,即有序、无重复等
我在 LAMP 环境中使用 CakePHP 框架,但是,我认为这个问题与所有编程语言有关。
到目前为止,我的方法是查询每个提供商的搜索 API,然后填充一个 MySQL 表。由此对结果进行排序、分页等。但是,我担心的是性能:API 通信、解析、插入然后读取全部在一次执行中完成。
我是否遗漏了什么,有人有任何其他想法吗?我确信这是许多替代解决方案的常见问题。
如有任何帮助,我们将不胜感激。
最佳答案
是的,这是一个常见问题。
在 SO 中搜索类似 https://stackoverflow.com/search?q=%5Bphp%5D+background+processing 的问题
尝试此操作的每个人都意识到调用其他站点获取数据很慢。前一两个看起来很快,但其他站点中断(并且您的应用程序中断)并且其他站点很慢(并且您的应用程序很慢)
您必须断开前端与后端的连接。
选择 1 - 使用仅获取和加载数据库的后台进程预查询数据。
选择 2 - 启动一个长时间运行的后台进程并从 JavaScript 函数返回检查它是否已经完成。
选择 3 - 用户的初始请求产生后台进程 - 然后您通过电子邮件向他们发送一个链接,以便他们可以在工作完成后返回。
关于php - 如何聚合 API 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2257233/