【速報】RubyKaigi 2014レポ:Hypermedia: the Missing Element to Building Adaptable Web APIs in Rails

RubyKaigi 2014の参加レポート速報!

Session

9/18(木) 16:00 Hall B
Hypermedia: the Missing Element to Building Adaptable Web APIs in Rails
Freelancer , Toru Kawamuraさん
発表資料 http://www.slideshare.net/tkawa1/rubykaigi2014-hypermedia-the-missing-element
 

参加レポート

WEB APIの課題としてレスポンスが変わるとてクライアントを破壊してしまうことがある。これはクライアントがAPIに対していくつかの仮定をもとに動作する(つまり密結合している)ことに原因がある。これを粗結合にして、クライアントを破壊しない変更をすることが出来ないか。
、、、というテーマのお話し。

この解決策はHTMLにヒントがあるとのこと。
HTMLは、条件に応じてリンクを含んだり含まなかったりしており、その状態に応じてクライアントは次のアクションをとることができます。
もし、APIがJSONでデータを返したい場合、HTMLで返している情報をJSONでも返すことで、クライアントが状態を認識でき、その情報をもとに次のリクエストを判断して遷移することができます。

HTMLにあってJSONに足りないのは下記の情報のため、これらをJSONに付与できれば良い。
■microdata
■リンク
■フォーム

HTMLをJSONに変換するgemも公開していました。
https://github.com/tkawa/hypermicrodata

感想

「WEB APIとWEB APPを区別して考えない」という点、目から鱗でAPIの価値観が変わりました。

Pocket