php - 如何聚合 API 数据?

标签 php api cakephp aggregation

我有一个连接到 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/

相关文章:

php - 查询问题 - 尝试对讨论中的评论进行分组

jquery - 如何每 15 秒刷新一次 Twitter API?

javascript - 尽管 json 给出了错误的数据,但从 API 中获取内容

jquery - 像在 Gmail 设置中一样浏览裁剪和上传个人资料照片的代码?

php - url 管理器 yii

php - 使用 CakePHP 3.4 将纯文本密码迁移到 Bcrypt

php - CakePHP 3.1 管理员前缀路由和登录问题

php - CakePHP 代码生成不适用于没有主键的表 [新手]

php - 将具有自定义价格的产品添加到在 WooCommerce 中以编程方式创建的订单

api - Laravel Paypal API 单一支付