如何在 AngularJS 应用程序中减少 API 请求

How to cut down API requests in AngularJS app

我的问题是我提出了太多 API 请求,我想尽可能减少请求。下面我将描述一下情况:


我有三个页面,都使用 ngRoute 链接。像这样:

Page A: Teams (list of teams)
  URL: "/teams"
Page B: Team Details (list of players)
  URL: "/teams/team-details"
Page C: Player Details (list of player stats)
  URL: "/teams/team-details/player-details"

页面 A 是通过使用一个简单的 $resource.query() 请求从 API 中非常容易地提取团队数组并使用 ng-repeat 遍历它们来填充的。

通过调用 html 模板并使用从 单独的 API 请求/team-details 的值填充特定字段来填充页面 B端点,从页面 A 上单击的元素中获取 team_id 值。

页面 C(与页面 B 一样)从页面 B 上点击的播放器获取 player_id 并使用该值调用 /player-details 端点。这是另一个单独的请求


一切正常,但您可以想象,一个用户很容易在一小时内收到超过 100 个 API 请求。

我的请求限制是 1000/小时,所以如果只有 10 个用户同时在线,它很容易超过我的限制并关闭我的 API.

如果我可以将 API 作为一个单一的主端点访问,并在一组中输出所有数据和子数据,那么这将解决我的问题,但由于我需要请求单独的端点,所以我看不到怎么做。

有没有更好的方法来解决这个问题?或者这些过多的 API 请求是唯一的方法吗?

如有任何帮助,我们将不胜感激。

据我所知,您的模型看起来适合该应用程序并且符合 API 驱动的应用程序应该如何工作...

但是,您可以做的一个潜在缩减是在本地缓存一些结果。即存储一些不太可能在会话中更改的数据的本地版本。例如,如果团队数量不太可能发生变化,则将 1 API 请求的结果存储在本地并使用它,而不是从您的 API.

中调用数据

按照这条路线,您可以选择仅在特定时间段后更新特定数据。因此,如果用户查看了一些 team-details 则拒绝在接下来的 10-20 分钟内更新此数据。但是,这又取决于您的数据对时间的敏感程度。