2012-07-20 62 views
2

我對Rails和REST非常新穎。我想在Rails中使用REST API。我發現一個簡單和標準的方式與ActiveResource。通過ActiveResource在Rails中使用HTTPS REST API

API,我想消費是:https://api.pinterest.com/v2/popular

雖然直接訪問這個API,使響應爲:{「消息」:「請升級您的應用程序!」,「錯誤」:「驗證失敗:請升級你的應用程序!「}

因此,我需要同樣的結果,當我從RAILS消耗它。

爲了這樣做,我所產生的一個模型作爲流行和作爲改性它的代碼:

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'瀏覽器。雖然預期的結果是{「消息」:「請升級您的應用程序!」,「錯誤」:「身份驗證失敗:請升級您的應用程序!」}

請指導,我在哪裏運行錯了。

請提供在Rails中使用HTTPS REST API的具體指導原則。如何使用OAuth來使用它們?

還有沒有比通過ActiveResource使用它更好的方法?

+0

看來它甚至不需要資源。我嘗試使用我自己的本地API,這是一種簡單的json格式的http請求。它將它們顯示爲與null相同的響應。請讓我知道,執行過程中的錯誤在哪裏。它在ActiveResource的示例中給出時使用。 – Gun 2012-07-20 23:10:32

回答

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與oauth一起使用activeresource。