Я думаю, что лучше сказать, что JAX-RS требует, чтобы вы использовали изображений.
Объект домена My Foo не имеет представления, что он используется в RESTful способом. Он знает только о Bar (другой корень заполнителя) и любых объектах, с которыми он может перемещаться через эту панель. На самом деле, у меня также есть интерфейс командной строки для этого приложения, которое не использует REST или даже HTTP.
Интерфейс моего RESTful обертывает Foo/Bar в представления, которые ссылаются друг на друга через URI. Я думаю, вы можете называть эти DTO, но если вы (как указано в других ответах) просто аннотируете свою модель домена с тем, что требуется для маршала и их развязывания, я думаю, что вы кодируете себя в угол, который запрещает HATEOAS.
Это также очевидно, когда у вас есть коллекция. Если Foo -> * Bar, вы собираетесь вернуть все элементы Bar в своей немаршаллированной форме? Почему не только URI и, возможно, некоторые другие минимальные данные, , например.
GET Foo/FFF
<foo>
<link rel="self" uri="uri="foo/fff" />
<bar uri="bar/abc123">
<status="Active" />
</bar>
<bar uri="bar/qqq">
<status="Inactive" />
</bar>
</foo>
Если клиент хочет узнать больше о данном баре, он может
GET бар/абв123
<bar>
<link rel="self" uri="bar/abc123" />
<foo uri="foo/fff" />
<status>Active</status>
<title>Some Bar</title>
...
</bar>
Спасибо, это то, что я находясь в поиске. – deamon