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の価値観が変わりました。