4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rails API Client比較

Posted at

Ruby on RailsにてAPI Clientとして使用できるgemについてどんなものがあるのか簡単に概要をまとめてみました。

ActiveResource

Railsの標準機能としてRails2にて登場しましたが、Rails4以降は標準機能から分離されています。
REST APIを使用するRailsアプリケーションにおいて、ActiveRecordのような振る舞いで実装が可能です。
もともと標準機能として存在していただけに、使い方に関する文献は多いです。
https://github.com/rails/activeresource

Her

ORM機能とHTTP Client機能が分離されているのが特徴です。
Her::Modelを使用するモデルにincludeすることで、ActiveRecordのように操作することができます。
https://github.com/remiprev/her

ActiveRestClient

Herよりも後に登場したgemです。これもActiveRecordのようにモデルを操作することができます。
wikiにはActiveResourceは、リソースの命名規則がRailsに従っていない場合は機能せず、柔軟性がないとの記述がありますが、ActiveResourceを使っていて特にこれらを問題に感じたことはないです。※あくまで主観です。
wikiにこのgemは更新していないので、Flexirestを参照してくれと記載されています。
https://github.com/whichdigital/active-rest-client

Spyke

他のgemと同様にActiveRecordのように操作することができます。
Herはパフォーマンスの問題とメンテナンスがあまり行われないので、Herからインスピレーションを受けて新しく作りましたとwikiに書いてあります。
大量のJSONの高速処理と書いてあるので、パフォーマンス面に力を入れているようですね。
https://github.com/balvig/spyke

Flexirest

ActiveRestClientの作成者のひとりがActiveRestClientに代わるgemとして作成したものです。
ActiveRestClientと似ているが、柔軟性の面で優れているとのことです。
https://github.com/flexirest/flexirest

まとめ

どのgemもActiveRecordのように振る舞うことを全面でアピールしています。
簡単にですが一覧に現時点(2019/12/16)での各gemの情報をまとめてみました。

gem Github スター数 登場 最新バージョン 公開日 リリース数
ActiveResource 960 2013年 v5.1.0 2018年11月03日 5
Her 1,860 2012年 v1.1.0 2019年02月14日 65
ActiveRestClient 389 2013年 v1.0.3 2014年07月30日 87
Spyke 562 2014年 v5.3.4 2019年05月31日 49
Flexirest 136 2013年 v1.8.7 2019年12月06日 121

スター数で見るとHerが一番人気ですね。
2019年もリリースがあるのは、Her、Spyke、Flexirestでした。ActiveResourceは元々標準機能に備わっていただけあり、成熟期は終わっているということでしょう。
また製作者がFlexirestのwikiに書いていたように、ActiveRestClientはもう更新が止まってしまっているようです。

有名どころはActiveResourceだと思いますが、こういった観点で見るとまたどれを使うべきなのか悩みどころですね。
処理速度や使いやすさの観点からの比較検討が今後の課題です。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?