如何在Ruby on Rails中调用API(例如Flickr API)? 新手问题

我在rails中构建我的第一个应用程序,我想调用Flickr的API

我知道我可以使用flickr-fu,rflickr或其他gem,但我想从头开始自己学习

比方说,我想调用flickr.photos.comments.getList来返回照片的评论。 参数是api_key和photo_id。 我有两个。

我将以xml的forms获得响应

   Umm, I'm not sure, can I get back to you on that one? ` 

我想通过调用该方法将收到的数据存储到一个变量comments ,我可以使用它来访问数据,例如,

 comments.all.first.author_name = "Rev Dan Catt" 

要么

 comments.all.first.content = "Umm, I'm not sure, can I get back to..." 

我怎样才能做到这一点? 请耐心等待(对于noob问题抱歉)

 include 'rubygems' include 'httparty' class Flickr include HTTParty base_uri 'api.flickr.com' def self.getPhotos(uid) return get('/services/rest/', :query => { :method => 'flickr.people.getPublicPhotos', :api_key => 'api key goes here', :user_id => uid}) end end 

然后打电话

 Flickr.getPhotos('12345678') 

首先,您需要某种XML解析器来处理您获得的数据。 Nokogiri是一个使用得很多的解析器,但它可能有点太多了。 在那种情况下找一个更简单的。

这应该足够了。

但是如果你真的希望按照你在示例中的建议进行表示,则需要(递归地)遍历XML文档并将其置于某种结构中。 看看Ruby访问魔术 ,看看如何动态构建这样的结构。 另一种可能性是为所有细节组创建类(如flickr-fu所做),由于数据事先已知,因此效率更高。

PS你可以通过寻找其他解决方案来作弊,这样你仍然可以自己学习,但你不需要完全重新发明轮子。 实际上结合了几个实现的想法,你可能会想出更好的东西!