したがって、ここで使用するパッケージを選択するための鍵は、次のいずれかです。
- Web API からデータを取得していて、自分のサーバーに保存/操作したい場合、または
- Web API を介してデータを操作しており、サーバーに何も保存するつもりはありません。
#1の場合、ActiveRecord が必要になります。これは、Postgres/MySQL/etc データベースでデータを操作および保存するための Rails のパッケージです。
#2の場合は、ActiveResource を排他的に使用できます。これにより、Web API からデータを取得し、実行時にデータを操作してから、Web API にポストバックして変更を加えることができます。
ただし、多くのアプリケーションでは、これらのパッケージの両方を使用することがよくあります。ActiveResource を使用してデータを非常に簡単に取得し、それを ActiveRecord モデル (User や Location など) に適用すると、API からデータを何度も取得することなくローカルで使用できます。
例を挙げると、私が取り組んでいたサービスのために、公共のソースから位置情報データを取得し (郵便番号の座標を検索)、そのデータを ActiveRecord を使用してローカルの Location オブジェクトに保存したので、遅滞なく繰り返し検索できるようになりました。 Web API 呼び出しの。(頭が良ければ、Web API からこのデータを時々更新します)
ActiveResource が機能するかどうかの判断
サービス要求はドキュメンテーションプロトコルに準拠していますか? たとえば、Find メソッドのExpects a response ofブロックを見てください。もしそうなら、あなたは余分な仕事をせずに行くのが良いかもしれません.
注: Rails 3.1 の時点で、ドキュメントは変更ログと少し同期していません。
すべてのリクエストのデフォルト形式が JSON に変更されました。XML を引き続き使用する場合は、クラスで self.format = :xml を設定する必要があります。例えば。
また、ActiveResource は Rails 4.0 ブランチから完全に削除されているため、新しい Rails アプリケーションを開始することを楽しみにしており、最新かつ最高のものが必要な場合、これはまったく選択肢ではありません— しかし、すべての希望が失われるわけではありません。ファラデーなど、RESTful インターフェイスとのやり取りをより簡単にする宝石がたくさんあります(完全な開示: 私自身はファラデーを使用したことがないので、その有効性について実際にコメントできますが、ここに配置しました。他にも多くのオプションがあります。
注 (上記の同じリンクから): Active Resource は、HTTP 経由でリソースを要求および送信するための標準 XML 形式に基づいて構築されています。これは Action Controller に組み込まれた RESTful ルーティングを反映していますが、プロトコルを適切に実装する他の REST サービスとも連携します。REST は HTTP を使用しますが、「典型的な」Web アプリケーションとは異なり、HTTP 仕様で使用可能なすべての動詞を利用します。
上記の答えが「いいえ」(準拠していない) の場合は、ラッパー クラスを作成する必要があります。積極的に管理されている gem でこれがどのように行われるかの例については、Facebookerを参照してください。
参考文献:
ActiveResource に関する優れたチュートリアル
アクティブレコードを始める
Web 開発を始めたばかりの場合は、データベースとモデルの基本についても理解する必要があることに注意してください。作業は大変です。:)