2

私はRailsとRESTに関してかなりの初心者です。RailsでREST APIを利用したい。ActiveResource を使用した簡単で標準的な方法を見つけました。

私が消費したいAPIは: https://api.pinterest.com/v2/popular

この API に直接アクセスすると、{"message": "Please upgrade your app!", "error": "Authentication failed: Please upgrade your app!"} という応答が返されます。

したがって、RAILS から使用する場合も同じ結果が必要です。

同じことを行うために、1 つのモデルを 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」と表示されます。期待される結果は {"メッセージ": "アプリをアップグレードしてください!", "エラー": "認証に失敗しました: アプリをアップグレードしてください!"}

私が間違っているところを教えてください。

Rails で HTTPS REST API を使用するための具体的なガイドラインを提供してください。それらを OAuth で使用するにはどうすればよいですか?

ActiveResource 経由で消費するよりも良い方法はありますか?

4

1 に答える 1

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 を使用してください。

于 2012-08-07T22:54:41.073 に答える