通过ActiveResource在Rails中使用HTTPS REST API

时间:2012-07-20 22:31:58

标签: rest ruby-on-rails-3.1 oauth https activeresource

我是Rails和REST的新手。我想在Rails中使用REST API。我用ActiveResource找到了一种简单而标准的方法。

我想要使用的API是:https://api.pinterest.com/v2/popular

在直接访问此API时,请回复:{“message”:“请升级您的应用!”,“错误”:“身份验证失败:请升级您的应用!”}

因此,当我从RAILS使用它时,我想要相同的结果。

为了做到这一点,我生成了一个模型作为Popular并将其代码修改为:

class Popular < ActiveResource::Base
  self.site = "https://api.pinterest.com/v2/popular"
  self.format = :json
end

然后,我将控制器生成为Populars并将其代码修改为:

class PopularsController < ApplicationController  
  def index
    @popular = Popular.all
    render :json => @popular
  end
end

然后在routes.rb中,我添加了

resources :populars

在运行“http:// localhost:3000 / populars”时,它在浏览器中显示“null”。虽然预期结果为{“message”:“请升级您的应用!”,“错误”:“身份验证失败:请升级您的应用!”}

请指导,我跑错了。

请提供在Rails中使用HTTPS REST API的特定指南。如何使用OAuth使用它们?

除了通过ActiveResource消费它还有其他更好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果您输入控制台

1.9.2p320 :041 > Popular.collection_path
 => "/v2/popular/populars.json" 

因此,通过约定,您在服务器端有错误的路由。

您也可以使用

在控制台中启用记录器
ActiveResource::Base.logger = Logger.new(STDERR)

你可以看到下一个:

1.9.2p320 :042 > Popular.all
I, [2012-08-08T01:51:36.725766 #1371]  INFO -- : GET https://api.pinterest.com:443/v2/popular/populars.json
I, [2012-08-08T01:51:36.725878 #1371]  INFO -- : --> 404 NOT FOUND 17 (1936.9ms)
 => nil 

这就是为什么结果为零。

https://github.com/albertopq/oauth-activeresource - 试试这个gem,将activeresource与oauth一起使用。