我应该如何聚合多个 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 请求?的主要内容,如果未能解决你的问题,请参考以下文章
如何在客户端处理多个请求/API 调用并行的 JWT 刷新令牌?