4

非 REST API (つまり、GET site.com/gettreasurehunts) を使用するクライアントを作成しています。これには、リクエストの HTTP 本文ですべてのパラメーター (リソース ID を含む) をカスタム XML ドキュメントとして指定する必要があります。Rails と ActiveResource を使いたいのですが、ActiveResource のほとんどすべてのメソッドを書き直さなければなりません。

別の (Ruby) フレームワークを使用しても、同じ結果を達成する別のより洗練された方法はありますか?

4

3 に答える 3

1

簡単な答えです。ActiveResource にも同様の問題があり、HTTParty の API (クラス メソッドが多すぎる) が気に入らなかったので、自分で作成しました。それを試してみてください、それはWrestと呼ばれます。Curl と、REXML、LibXML、Nokogiri、および JDom によるデシリアライゼーションをすぐに使用できるように部分的にサポートしています。独自のデシリアライザーを簡単に作成することもできます。

以下は、Delicious API の例です。

class Delicious
  def initialize(options)
    @uri = "https://api.del.icio.us/v1/posts".to_uri(options)
  end

  def bookmarks(parameters = {})
    @uri['/get'].get(parameters)
  end

  def recent(parameters = {})
    @uri['/recent'].get(parameters)
  end

  def bookmark(parameters)
    @uri['/add'].post_form(parameters)
  end

  def delete(parameters)
    @uri['/delete'].delete(parameters)
  end
end

account = Delicious.new :username => 'kaiwren', :password => 'fupupp1es'
account.bookmark(
    :url => 'http://blog.sidu.in/search/label/ruby',
    :description => 'The Ruby related posts on my blog!',
    :extended => "All posts tagged with 'ruby'",
    :tags => 'ruby hacking'
  )
于 2010-02-16T16:48:21.580 に答える