Foo и Bar - оба Beans.
Если доступ к FooResource осуществляется через / foo / {id}, а BarResource - через / bar / {id}, а Foo относится к Bar, должен ли я вернуть URI для Bar илипросто идентификатор для бара?Я предполагаю, что URI.
Я инкапсулирую Foo в FooRepresentation и Bar в BarRepresentation, и эти типы на самом деле возвращаются (Foo | Bar) Ресурсом Джексону.В случае соответствующего Bar я использую UriBuilder, используя BarResource.class и foo.getBar (). GetId () для генерации URI.
Часть, где я поставлен в тупик, - это то, что лучше всего, если я хочуизменить то, на что ссылается Бар Фу.Таким образом, у меня есть URI для «новой» панели. Позволяет PUT или POST это foo / 1
. На данный момент я нахожусь в FooResource с методом, которому передают созданный параметр FooRepresentation.Для прямых свойств это имеет смысл, потому что я могу использовать внедренный FooRepository для объединения изменений.
Имеет ли смысл затем создать что-то вроде FooService, которое имеет метод setFooBar (Foo foo, Id barId) и вот гдевводятся несколько репозиториев?
Если нет, как мне перейти от URI -> BarResource -> Bar (не BarRepresentation) в запросе к FooResource?
Если бы я был в BarResource, я мог быиспользуйте UriInfo для извлечения параметра id, который также кажется более чистым, вместо простого анализа идентификатора из URI.Так есть ли способ получить экземпляр BarResource, который будет соответствующим образом вставлять элементы @Context, такие как UriInfo, из FooResource?