JA
RESTはRailsにおいて重要な要素であり、RESTという用語が普及するひとつのきっかけにもなりました。しかし多くの現場で、「RESTはAPIの設計手法」のように誤解されています。
本来のRESTは、Webがなぜ成功したかを分析した9つの制約です。本発表ではまず、この制約を満たすと「古いものを壊さずに新しいものを足せる」拡張性と、「制御できない相手と通信しても壊れない」インターネット規模という2つの特性が得られることを、RESTの原典の論文に基づいて解説します。そのうえで、Hotwire、React + JSON API、Inertiaといった現在のRailsで採用されるアーキテクチャが、2つの特性のどれを得てどれを失っているかを一枚の図で診断します。
両方の特性を満たす「真のREST API」、すなわちハイパーメディアAPIは、理想だが現実には難しいと長年言われてきました。その評価が、いま反転しつつあります。真のREST APIが前提としていた、あるクライアントがついに現れたからです。後半では、同じToDoアプリをHotwire版とReact + JSON API版で用意し、そのクライアントで動作させる比較を行います。どちらのスタイルの開発者も、自分の設計の現在地と、明日から取れる一歩を持ち帰れます。