web-dev-qa-db-ja.com

Spring HATEOASとSpring Data Rest

質問は、Spring HATEOASとSpring Data Restの違いは何ですか?

どちらも同じことができると思うし、Spring Data Rest(Spring Dataの一部として)はもう少し活気があるようだ。

https://github.com/spring-projects/spring-hateoashttps://github.com/spring-projects/spring-data-rest

いつどちらを使用しますか?

38
HighTML

Spring HATEOASは、一般的な抽象化(表現モデル、Linkクラス、Spring MVCコントローラーを指すリンクを構築するAPIなど)を提供して、Spring MVCでハイパーメディア駆動のREST APIの構築を容易にします一般的に、Spring MVCと一緒に使用して、これらのサービスを手動で構築できます。

Spring Data RESTはSpring HATEOASを使用して、Spring Dataリポジトリによって管理されるエンティティのリソースを自動的に公開し、ページネーション、エンティティのリンクなどのハイパーメディアの側面を活用します。後で手動で実装したコントローラーを使用して、より複雑なプロセスを選択的に追加できます。

この感覚をつかむには、 Spring RESTBucks サンプルプロジェクトをご覧ください。 Orderインスタンスの処理は、Spring Data REST(ビジネス上の制約を実装するためのいくつかのマイナーな調整を伴う)によって完全に行われます。注文を完了するために特定の手順とプロトコルを実際に実装する必要があるため、CRUDカテゴリに分類されます。コードは here で、追加のビジュアルを備えたスライドデッキは speakerdeck.com

72
Oliver Drotbohm

HATEOASは、アプリケーション状態のエンジンとしてハイパーメディアを表しており、RESTの重要な役割の1つです。基本的に、重要なポイントは、リソース状態のリンクを使用して、アプリケーション状態の有効な遷移をマップすることです。この場合、リンクを介して到達可能なアプリケーションの有効な次の正しい状態を提供するサービスプロバイダーになります。 Spring HATEOASは、リソースにHymeridia Controlsを構築するためのSpringプロジェクトです。これは、Spring MVCと統合されるプロジェクトであり、サービスフォームCRUD(Richardsonモデルの成熟度のレベル2)のレベルを高めるための非常に優れたサポートである、本物のRESTFull WSを構築するためのSpring MVC拡張として考えることができます。ハイパーメディア対応(リチャードソンモデルの成熟度レベル3)。一方、Spring Data Restは、Spring HATEOASを基本的なブリックとして使用する非常に素晴らしいプロジェクトであり、restfull wsとして使用可能なリポジトリレイヤーを提供します。 proctisでは、このプロジェクトは、リポジトリレイヤーを完全なエンドポイントとして公開するための古典的なボリポレントコードを削減するのに役立ちます。 tatはプロジェクトの推進者であったと言えるでしょう。 Spring HATEOASには、あらゆる種類のレストフルエンドポイントに使用できるフレームワークがあり、springデータレストには、エンドポイントとそれをカスタマイズするためのフレームワークを既に提供しているspringプロジェクトがありました。

この反省が、2つのプロジェクトの違いを明確にし、どちらを使用するかをよりよく理解するのに役立つことを願っています

1
Valerio Vaudi