2014-03-30 151 views
0

我正在开发项目,需要将来自多个API(facebook/twitter)的数据汇总到一个统一的结果中。 汇总API数据

例如,使用AngularJS我有一个按照日期顺序来自多个Facebook页面的Feed的Feed页面,然后使用ngInfiniteScroll在滚动中加载更多的feed。

什么是最好的方法来创建这样的东西?

感谢

回答

1

既然你已经载入多个API的/多个API调用的数据,我建议从每个API缓存几个职位,然后这个缓存整理成一个“排队”(日期有序列表)的职位。然后,这些将被显示,并在饲料队列

举例说明:

说你有FEEDA和反馈上限(可以是Facebook网页,Twitter账户或其他)。 您检索并缓存来自FeedA和FeedB的前5个供稿,然后您可以按日期向主供稿队列中排序。用户滚动时,帖子将从队列顶部取得并显示出来。同时,在后台中,您会跟踪哪些帖子来自哪里,并从该源中检索更多帖子。因此,如果在滚动期间从FeedA中获取了2个帖子,则您会从FeedA中检索到另外2个帖子,这些帖子来自您已经缓存的前5个帖子。通过这种方式,您始终确保您可以从任一Feed中准备好一些帖子。

缓存需要完成,因为您不知道哪些Feed最近发布的帖子以及发布顺序。

准确的数字取决于您的具体情况(显示的帖子数量,用户是否可以自由滚动或者只有固定数量的帖子,用户通过Feed的速度有多快,Feed的速率限制等)

至于实际实现的想法,我建议在页面上的javascript中存储有关帖子(主要是ID和日期)的元数据,您可以通过AJAX从API中检索。然后,当它显示帖子的时候,您可以简单地检索确切的帖子。如果是推文,你也可以直接存储推文本身,因为它的消息不会那么长,但是对于Facebook提要可能不那么方便。