人々がRESTに挑戦しようとすると、通常、実例を探し始めます。そして、「RESTful」であると主張している多くの実例を探したり、「REST API」と名づけたりするだけでなく、RESTを行っていると主張する特定のサービスが何故失敗するのかに関する多くの議論を集めています。
何故、このようなことが起こるのでしょうか? HTTPは新しいものではありません。しかし、それは様々な方法で適用されています。それらのいくつかはWebデザイナが考えていたことと一致していますが、その多くは異なります。人が利用する、他のプログラムによって利用される、あるいはその両方の目的でそれらを構築するかどうかによらず、あなたのHTTPアプリケーションにRESTの原則を適用するということは、あなたがまさにあべこべのことをするということを意味します。つまり、あなたは「正しく」Webを利用しようとしているのです。あなたがその考えに異議を唱えるのなら、RESTfulな方法において、それはある意味「正しい」ですし、ある意味「誤り」です。多くの人にとって、これは確かにとても新しいアプローチなのです。
通常の標準的な否定が当てはまります。それは、REST、Web、HTTPは同じものではないということです。RESTは、多くの異なる技術で実装することができる一方、HTTPは、RESTアーキテクチャスタイルに従った唯一の具体的なアーキテクチャです。したがって、実際には「RESTful HTTP」を「REST」と区別することに注意を払うべきです。しかし、私はそうしていないので、本稿の残りではその2つが同じものであると仮定することにしましょう。
全ての新しいアプローチで見られるように、それはいくつかの共通のパターンに気づくのに役にたつものです。このシリーズの最初(参考記事)と2つ目の記事(参考記事)で、私は、リソースの収集、正しいリソースとなるような予測結果のマッピング、模範となるイベントへのシンジケーションの活用といった、いくつかの基本的事項についての概説を試みました。そして、将来の記事では、これらと他のパターンに関してさらに詳しく説明しようと考えています。とは言うものの、今回、私はアンチパターンについてフォーカスしたいのです。それらは、RESTの考えを身につけるために問題の発生した、あるいは、しようと努力したが失敗した RESTfulなHTTP活用への試みについての典型的な例についてです。
続きをご覧になりたい方は、以下URLへアクセスして下さい。
http://www.infoq.com/jp/articles/rest-anti-patterns
RESTに関する他の話題が気になる方は、以下URLで表示される一覧よりお選びください。
http://www.infoq.com/jp/rest