我一直在使用node.js并使用amazon产品广告API进行搜索,现在它可以作为Web API端点使用,以便我可以通过链接获取数据:
my_host/amazon/{search_catgegory}/{keyword}/{page}
然而,亚马逊API存在限制,每次只返回最多10个项目。所以,我想将搜索结果缓存在我自己的数据库中,然后我可以在每次查询时返回50个项目。
我的想法是使用node-cron来安排我的任务,以便在每个星期一午夜实现我想要的(例如,获得前10页搜索结果)。
有两个问题: 1)如何有效地获得我的结果,我是否只需多次调用API,如下所示?
my_host/amazon/{search_catgegory}/{keyword}/1,
my_host/amazon/{search_catgegory}/{keyword}/2,
my_host/amazon/{search_catgegory}/{keyword}/3,
...
my_host/amazon/{search_catgegory}/{keyword}/10
或者我应该将每个API查询包装到一个promise中,然后使用promise.all()之类的东西来获取我想要的所有数据?
2)我应该在同一个节点应用程序中拥有Web API服务(即原始快速应用程序)和这个新的cron任务(即来自亚马逊的预加载数据)吗?或者我应该在不同的应用程序中执行此操作?