2010-11-30 2 views
0

私はJPAアノテーション付きPOJOを非常に基本的な方法で公開しているSpringServlet(Jerseyから)を持っています。たとえば、オブジェクトの実際のrepresetantionを返すのではなく、ちょうどNameのようなフィールドを再生しました。他のリソースを参照するリソースをシリアライズ/マーシャリング(およびその逆)するにはどうすればよいですか?

もちろんオブジェクトの実際の表現をリソースとして返したいと思います...私が詰まっている部分は、/ foo/{id} /を介してアクセス可能なFoo型のオブジェクトを持っている場合ですFooの一部としてオブジェクト型のBarとの関係があります。私は応答でBarをシリアル化したくありません。私はバーリソースにURIを返したい。

私はここから私自身です - フレームワークはその部分を処理しませんか?特にパスに関して。 @PathでアノテーションされたBarResourceを作成しなければならないように感じるが、シリアル化中に、定数から読み込まれたBar POJOリファレンスのURIを設定するようにも感じる。私はタイプを取ってリソースを検索することができません(そして、その後@Pathアノテーション)が、それは便利でしょうか?

答えて

0

あなたは、リソース、表現、オブジェクトの区別をはっきりさせるまで、混乱しないようにするつもりです。

リソースは概念であり、クライアントアプリケーションにとって有用な「もの」です。それは非常に漠然としている。 URIで識別され、メソッドを使用して操作されます。非常に限定された方法を補うためには、曖昧で柔軟性が必要です。

リプレゼンテーションは、リソースをある瞬時に表すワイヤを介して転送できるバイトのセットです。

オブジェクトは、リソースとの直接の相関関係を持つ場合としない場合がある実装の詳細です。リソース内に含まれる情報は、単一のオブジェクトまたはオブジェクトグラフ全体によって実装されてもよい。リソースの内容をファイルに格納したり、SQLクエリの結果、XSLT変換などを格納することができます。

リソースの表現を作成するためにオブジェクトのシリアライズを使用することも、使用しないこともあります。オブジェクト間の参照は、単一のリソース内のコンテンツまたはリソース間のリンクに関連している可能性があります。ただし、ドメインオブジェクトを表現にシリアライズするのは非常に注意してください。これは、あなたが後悔して生きるクライアントとサーバーの間の結合のレベルを導入することを確実にします。

関連する問題