每分钟请求API和存储的最佳方式

时间:2017-09-05 14:40:42

标签: node.js rest api reactjs

我的应用程序正在达到API的速率限制,这会损害用户体验。我有一个想法来解决这个问题,但不知道这是否应该理想地解决这个问题。这个想法是否有意义,是解决这个问题的好方法吗?我该如何实施呢?我使用的是react-native和nodejs。

这是一个想法:

我的应用会请求来自"中间人"我制作的API。中间人API将每分钟从我遇到速率限制问题的主API请求一次数据(这应该解决速率限制问题)然后将其存储一分钟,直到它再次更新。我认为最好的方法是在AWS上旋转服务器,每分钟从其他API请求(这是每分钟获取请求的最简单方法吗?)然后将其存储在空白的中间人网页上(或者我需要将它存储在像MongoDB这样的数据库中?)。然后我的应用程序将从该中间人网页/ API调用。

1 个答案:

答案 0 :(得分:2)

你的想法很好。

你的中间人将是一个缓存代理。它就像你说的那样行事。 Hava看看https://github.com/active-video/caching-proxy它几乎可以满足您的需求。它创建了一个服务器,它将接收URL请求,获取和缓存这些请求,并从现在开始提供缓存版本。

唯一的缺点是它没有缓存的生命周期选项。您可以使用fork来添加选项,也可以运行一个守护程序来删除太旧的文件以强制重新获取。

编辑: 缓存代理的一个非常有趣的补充是有一个头请求来知道结果是否改变了。虽然并非所有API都提供此功能,但如果您显示此类信息,这可能会非常有用。仅当HEAD请求不计入您的API限制时...