我应该如何聚合多个 API 请求?

Posted

技术标签:

【中文标题】我应该如何聚合多个 API 请求?【英文标题】:How should I aggregate multiple API requests? 【发布时间】:2021-05-01 07:24:18 【问题描述】:

我们正在构建一个 Web 应用程序,它将对后端服务器(也是我们设计的)进行多次 API 调用。我们正在进行这些 API 调用以获取 2-3 个第三方应用程序的响应。后端服务器将这些请求代理到各自的应用程序。

    在前端本身聚合 API 调用是个好主意,还是使用后端代理请求更好? 聚合这些 API 调用的最佳方式是什么?

【问题讨论】:

【参考方案1】:

要使用 Promise.all() 聚合 API 调用,它将接受一个可迭代的 Promise 作为输入,并返回一个解析为结果数组的 Promise。

更多信息,请查看here

【讨论】:

嘿@Yash,谢谢!。【参考方案2】:

我更喜欢在后端聚合 API/数据。您可以为您的客户端设计多个 API,这些 API 仅聚合来自其他更通用 API(例如来自多个微服务)的数据,或者仅从代码中查询数据并在同一服务拥有所有数据时聚合它。对于我们的项目,我们为它创建了一个单独的“边缘”服务。 Netflix 使用这种技术来减少 API 的繁琐,例如在移动设备上。有很多优点:

从客户端查看时,您只需支付一次网络延迟。 (同一区域/集群内的服务内通信应该更快) 更简洁/更少的客户端代码。 您的客户开发人员会因此而爱上您。

缺点(针对后端开发人员):

如果 UI/流程发生变化,API 可能也需要更改,但只需一个 API 即可更轻松地重构客户端代码。 更多后端代码

更多详情请点击此处:https://netflixtechblog.com/optimizing-the-netflix-api-5c9ac715cf19。

VS

【讨论】:

嘿@david 感谢您的回复。这肯定回答了我的问题。

以上是关于我应该如何聚合多个 API 请求?的主要内容,如果未能解决你的问题,请参考以下文章

uniapp如何把云数据库的内容显示出来

如何在iTunes Connect中添加多个应用内购买?

如何针对多个请求顺序运行jmeter采样器

如何在客户端处理多个请求/API 调用并行的 JWT 刷新令牌?

如何在 Express 和 Mongoose 的一个控制器 API 内发出多个“查找”请求?

如何在静态网站中安全存储API密钥