WebAPIを取り巻く環境の変化とRailsの対応について
 Rail 1.0から干支を一回り
常に進化し、アップグレード地獄を引き起こしながらも 環境の変化に適応し続けてきたRails
今回はWebAPIに注目して時代の流れを追いながらRailsはどうだったかみていきたいと思います。
 ※僕の観測範囲と憶測によるものなので勘違いや抜けなどあればご指摘頂けるとありがたいです
2005
1.0~1.2
ActionWebService
  • XML-RPC / SOAP Server 
  • XML-RPC / SOAP Client
2007
1.2~
resources routes
  • REST
2007
2.0~3.2
ActiveResource 
  • REST API
  • ~3.0 XML
  • 3.1~ JSON
2009
2.3のみ
Rails Metal
  • Rack対応
2010
3.0~
Metal controller
ActionDispatch::ParamsParser
2016
5.0~
Rails API
Action Cable
parameter_parsers

APIの時代背景

2000年前後~

  • XML-PRC
  • プロトコル
  • システム間連携や企業間取引などが中心
  • SOAP
  • WSDL: Web Services Description Language
  • Blogger API
  • MetaWeblog
  • REST
  • 設計思想
  • REST は 2000年にカリフォルニア大学 Irvine 校 (University of California, Irvine) の Roy Fielding による博士論文「Architectural Styles and the Design of Network-based Software Architectures」の中で最初に紹介されましたが、その時には REST はそれほど注目されませんでした
  • RSS 1.0

2005年頃~

  • Web 2.0
  • ティム・オライリーによって提唱された概念であり、狭義には、旧来は情報の送り手と受け手が固定され送り手から受け手への一方的な流れであった状態が、送り手と受け手が流動化し、誰もがウェブサイトを通して、自由に情報を発信できるように変化したウェブの利用状態のこと。
  • ブログの台頭
  • マッシュアップ
  • マッシュアップ(Mashup)とは、ウェブ上に公開されている情報を加工、編集することで新たなサービスとすること。
  • マッシュアップの語源は異なる音源からトラックの一部をそれぞれ取り出してミックスし、一つの曲にする音楽の手法である。ウェブにおけるマッシュアップも同様に複数の情報源からの情報から関連のあるものだけを取り出して加工し、一つのウェブサービスとして仕立てあげる。
  • マッシュアップが注目されるようになったのはさまざまな企業や団体が所有するデータベースを公開するWebAPIを整備するようになったためである。これにより情報技術に対する深い造詣がなくとも新たなサービスを立ち上げることができるようになった。
  • AJaxの発見(2005)
  • GoogleMapなどによりJavaScriptによる非同期通信の有用性が認識された
  • RESTをWeb APIに適用する考え方
  • 2006年にWEB+DB Pressでも特集が組まれはじめた
  • Web APIを用いれば,構築中のWebアプリケーションにGoogleやYahoo!の機能を簡単に盛り込むことができます。また,RESTというWebアプリケーション/Webサービスのためのアーキテクチャスタイルは,HTTPとURIの正しい使い方を教えてくれます。