Javaプラクティショナーではないので、最近JAX-RS仕様とApache CXFフレームワークについて学びました。これらすべてのものに頭を抱えながら、私は this SOの質問 。
MVCは設計パターンであり、JAX-RSは仕様であるため、比較について混乱しました。 JAX-RSについての初期の理解が得られましたが、MVCパターンを使用するフレームワークと言うよりも、RESTful APIの実装により適しているのはなぜですか?
N.B. CとPython背景があります。
特定のパターンがRESTfulなサービス開発などの幅広いものに「最適」であるかどうかは言えないと思います。そのパターンが最適であるかどうかは、ビジネスのニーズ、設計、および問題が解決するかどうかによって異なります。
つまり、MVCの概念は、REST開発で非常に役立ちます。ビジネスロジック(モデル、コントローラー)をHTTPプロトコルの詳細(ビュー)から分離するという考え方により、コードをより柔軟に保つことができます。/reusable。これにより、サービスの上に他のプロトコルをより簡単に追加できます。たとえば、SOAP、REST、およびカスタムバイナリソケットプロトコルを、すべて同じコアロジックを使用する「ビュー」としてサポートできます。
frameworks(JAX-RS、Apache CXF、その他のMVCフレームワーク)を比較する限り、それはニーズを満たすフレームワークを見つけることの問題です。成熟度、開発者の熟知度、コミュニティなどの要素を考慮する必要があります。frameworksとpatternsを混同しないことが重要です(多くのフレームワークでは、パターンの実装に関する彼ら自身)。
人々はすべてに対して1つのタイプのシナリオで機能するパターンを使用しているようです。
MVCはRESTにはまったく適していません。
RESTは、ステートレスクライアント/サーバー通信プロトコルに依存しています。
RESTは、ネットワークアプリケーションを設計するためのアーキテクチャスタイルです。アイデアは、CORBA、RPC、COMまたはSOAP=などの複雑なメカニズムを使用してマシン間を接続するのではなく、すべての呼び出しはメッセージであり、オブジェクトはありません。単純なHTTPは、マシン間の呼び出し。
HTTPに基づくWorld Wide Web自体は、RESTベースのアーキテクチャと見なすことができます。