Нужна помощь в создании ссылок для клиентов REST (HATEOAS) - PullRequest
1 голос
/ 20 сентября 2011

Я работаю над созданием веб-сервиса JAX-RS с использованием RestEasy 2.2.2 для развертывания на Tomcat 7. Веб-сервис возвращает JSON (через Джексона) клиентам. До сих пор это работало, но я не уверен, как создать динамические ссылки, которые нужно отправлять клиентам.

На ум приходит следующее:

1- Сделайте глубокую копию корневого объекта (который сам содержит другие объекты, всего три уровня), измените свойства String, представляющие ссылки, и верните этот новый объект.

Озабоченность: производительность, правильная реализация глубокого копирования

2 - изменить объект для запроса и вернуть его

Озабоченность: проблемы параллелизма (я даже не уверен, возможно ли это)

3 - Создайте новый корневой объект, итерируя по «основному объекту», и измените / добавьте, если необходимо

Концерн: аналогично (1). В основном это реализация конструктора копирования вместо cloning () объекта.

Единственный пример, который я смог найти (прокрутите вниз до раздела «Класс ресурсов JAX-RS»), похоже, реализует вариант 3. Однако, если я не ошибаюсь, он также ведет себя как вариант 2 ( он изменяет объект и добавляет в коллекцию), и я не уверен, как обрабатываются проблемы параллелизма.

Заранее спасибо за любые советы, помощь и мнения.

1 Ответ

0 голосов
/ 05 октября 2011

На случай, если кто-нибудь прочтет этот вопрос в будущем: я пошел по пути "serialize-deserialize in memory", чтобы получить свежую копию, и динамически создал ссылки на эту свежую копию. У меня уже есть читатели и писатели JSON, так что решение было доступно с очень небольшим трудом (точнее, одной строкой для фактического вызова). В целях проекта, кажется, работает нормально (с точки зрения производительности).

...