「悲しい」が正しい言葉かどうかはわかりませんが、RESTを支持する議論の1つは、特にHTTPを「適切に」使用して実装された場合、次のことを無料で提供することです(Fieldingの論文から引用) )::
- クライアントとサーバーの相互作用、UIをデータストレージから分離
- ステートレスサーバー、信頼性とスケーラビリティの向上
- クライアントキャッシュ、一部のネットワークトラフィックを削減
- 統一されたインターフェース、実装を提供するサービスから切り離す
- 階層化システム。各コンポーネントは、そのすぐ下またはすぐ上のコンポーネントのみに関係します。
- リソースの観点から考える表現オリエンテーション
- HATEOAS、アプリケーションは基本的にリンクをナビゲートします
- 動詞の数が少ない制約付きインターフェース(例:GET、PUT、POST、DELETE、その他約3つのみ)
RESTの代わりにSOAPまたは別のRPCソリューションを使用する場合、理論的には、これらの特性のすべてではなく一部を放棄することになります。あなたはクライアントのキャッシュ可能性をあきらめているかもしれません、そしてあなたは手続き的に考えています、そしてあなたはおそらくRESTafariansがティーに利用するすべての安全性とべき等条件を使うことができないでしょう。
RESTfulサービスは非常に人気があり、偶然ではありません。しかし、それは、 RESTfulサービスを構築する必要があるということですか、それとも非RESTfulサービスは本質的にはるかに悪いということですか?私はそうは思わない。私は2つの異なる会社のためにいくつかのRESTfulSOAを実行しましたが、SOAP(最近はかさばるように見えます)とあなたのような自家製のAPI(エレガントであっても標準ではありません)を好みますが、私はしません他のアプローチを却下し、それらを劣ったものとして却下します。
独自のAPIを使用し、200と404のみを返し、GETを使用してすべてを実行する場合、APIは概念的に単純であり、おそらく問題なく機能します。ただし、さまざまなメディアタイプが必要であり、コレクションの追加、削除、作成、更新が頻繁に行われるコレクションを含む永続的なストレージ要件がある場合は、最新のRESTful API設計を学ぶことで、少なくとも新しい考え方が生まれます。
結論としては、他の人がやっているので、RESTに行かなくてはならないという気持ちも悲しみもありません。しかし、利点は現実のものであり、RESTは単なる誇大宣伝ではありません。