0

我正在开发使用 twitter 流 api 的实时数据可视化项目。用于在基于 rails 框架的服务器端处理推文。

使用 twitter ruby​​ gem,我可以获取流推文

topics = ["coffee", "tea"]
client.filter(:track => topics.join(",")) do |tweet|
  puts tweet.text
end

有了这个,我需要在 Rails 中构建一个 JSON API。

更新:使用 JSON API,需要与 AngularJS 集成。对于实时构建 API,我是否需要将其存储在任何数据库中。

4

1 回答 1

0

我建议您考虑使用Sinatra构建 API,但您当然可以在 Rails 中完成。只需当客户端对 中定义的端点进行 REST 调用时routes.rb,控制器方法本身就会对 Twitter 进行 REST 调用,然后将其结果转换并序列化为 JSON 以返回给您的客户端。

请记住,您的客户需要将 CSRF 令牌与他们的请求一起发送到您的服务,以便 Rails 让他们通过并保持会话。

在 JQuery 中,它可能看起来像这样:

$.ajaxSetup({
  beforeSend: function(xhr) {
    xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
  }
});

至于与数据量有关的内存问题,这取决于您要检索的数据量,您正在使用它做什么,您的机器的功率等。如果您没有遇到 Firehose,我不会担心。如果它发生,让我们稍后担心内存问题。在不使用数据库的情况下,您总是可以做一些事情,例如缓存结果等。

于 2013-10-13T15:51:44.043 回答