私が現在取り組んでいるプロジェクトではorg.springframework.hateoas.ResourceSupport、オブジェクトにリンクを追加できるように、Springs を拡張することで REST API を介した HAL サポートを取得しています。
簡単な例:
public class MyDataRepresentation extends ResourceSupport {
private String name;
}
Web レイヤーで、表現にリンクを追加できます。
MyDataRepresentation myData = someService.getTheData();
myData.add(new Link(someUrl, someRel));
すべて順調です。
問題は、これを達成するために、ドメイン オブジェクト (MyData) を直接再利用し、Web 表現レイヤーに別のクラスを作成しないことです。この理由は、この特定のケースでの私のアプリケーションは、ドメイン オブジェクトを直接使用できるほど単純であり、ハンドコーディングまたはマッピングを使用して、Web レイヤーとの間でマッピング ロジックを変換することを避けたいからです。道具。マッピング ロジックに対するもう 1 つの反論は、ビジネス ロジックがしばしばマッピング ロジックに忍び込み、ビジネス ロジックを理解するのがさらに難しくなるということです。
ドメインクラスは次のとおりです。
public class MyData {
private String name;
}
残念ながら、これでは HAL リンクを添付する場所がありません。
私の質問は、Java 用の HAL フレームワークがあり、「拡張」を使用して Web/ドメイン マッピング ロジックのルートを強制することなく、Web レイヤーでドメイン オブジェクトを直接再利用できるかどうかです。
これを可能にするSpringでHALサポートを使用する他の方法はありますか? Jersey での HAL サポートはどうですか?