REST APIとかだるくない?って話

なんか、今のWebサービスって

  • TwitterとかFacebook、一応FoursquareなどのデカいWebサービスがある
  • それらはREST APIで内部の情報を提供している

というのがまず前提にあって(これらのサービスを「デ」と略す)、連携したサービス(レ)を開発する場合、

  • 認証系はデのOAuthなどにおんぶにだっこ
  • デのユーザーと、そのデータに紐づいたデータをレで持っとく
  • デのプロフィールとかソーシャルグラフとかも持ってきたいから、レのクライアントかサーバーがREST APIを使いまくったりする
  • デが死んだらレも死ぬ

というのがセオリーだと思う。ただ、近年の流れとして

  • スマートフォンのネイティブアプリや、WebでもクライアントサイドMVCが流行してきて、レでもサーバーサイドはAPIを提供するだけになりつつある
  • それに呼応する形で、BaaS(Backend as a Service):リッチなクライアントとAPIでやりとりすることを前提に、レ向けに認証系、データストア、クロールなど必要なものを提供するサービスも始まっている

というのがある。こういう流れを見ていると、レにデがREST APIを提供するってモデル自体が古いものに思えてくる。だいたい理由を箇条書きにする。

  • どうせデもレも同じ認証を使うんだから、まとめたほうがいい
  • デは明らかにデカいデータストアを持ってるんだから、ついでにBaaS的に分けて欲しい
  • そのほうがデータの連携もまとめられて良い

つまり、デがレにAPIを提供するんじゃなくて、適切な権限においてデータストアとAPIの提供メカニズムを直接提供したほうがいいんじゃないかって話。タダ乗りがアレだったらレから金を取るか買ってしまえばいいし、買う場合もデータストアが同じだから比較的楽に統合できる。まあいろいろ問題はあるだろうけど、そういう流れないかな。