从外部api中提取数据时获取空值

时间:2015-12-06 12:32:12

标签: ruby api

我试图从WatchPeopleCode API和我使用HTTParty gem提取数据来执行此操作。我为这样的实时流提取数据:

live = HTTParty.get("http://www.watchpeoplecode.com/api/v1/streams/live")
@live_streams = live["data"]

然后我在我的视图中访问和显示有关各个直播视频的信息,如下所示:

<% @live_streams.each do |stream| %>
  <p><%= stream["id"] %></p>
  <p><%= stream["actual_start_time"] %></p>
  <p><%= stream["title"] %></p>
  <p><%= stream["user"] %></p>
<% end %>

除了用户之外,几乎所有信息都正确显示。当我在控制台中测试我的代码时,我发现用户是nil。关于导致这种情况的原因以及如何解决问题的任何想法?我真的希望能够链接到用户/流媒体配置文件。

另外,我是否正确地完成了这项任务?我之前与API合作的唯一一次是使用Facebook / Twitter等进行用户身份验证。我可以以不同的方式从watchpeoplecode中提取数据,还是httparty是最佳选择?

2 个答案:

答案 0 :(得分:1)

当我加载API endpoint时,第一个数据条目没有用户。而其他两个条目都有用户名。

那说:没有什么可以做,因为没有从服务器返回的数据。

要解决此问题,您可以检查是否有用户并在没有用户的情况下处理该情况。所以不要这样:

<p><%= stream["user"] %></p>

你可能想写这样的东西:

<p>
  <% if stream["user"].present? %>
    <%= stream["user"] %>
  <% else %>
    unknown user
  <% end %>
</p>

答案 1 :(得分:0)

我手动(在浏览器窗口中)尝试了API,并且第一个条目确实为用户提供了null。剩下的条目都没问题。

www.watchpeoplecode.com的实时视图中,第一个条目为finished

这可能是一个原因。