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