У меня есть некоторые POJO, которые являются основой для этого API RESTful, над которым я работаю. Однако некоторые из ответов, которые мне нужны, должны содержать некоторую другую информацию, чтобы сделать API более полным. Я действительно не хочу помещать эту дополнительную информацию в POJO, но включил ее на уровне веб-сервиса, как если бы это было так.MarshallingView весной для регулировки выхода?
Он имеет дело с людьми, которые имеют «Назначения». У каждой встречи только один человек.
Итак, у меня есть вызов RESTful like/Patients/1, и он в основном захватывает POJO для Person, и в настоящее время я использую XStream для сериализации и отправки его на своем пути. Это прекрасно работает, но я хотел бы сделать что-то вроде этого:
<Person>
<firstName>James</firstName>
... other fields ...
<nextAppointment href="/Appointment/12345>2010-02-19</nextAppointment>
<prevAppointment href="/Appointment/12346>2010-01-01</prevAppointemnt>
</Person>
Где следующий и предыдущий назначение фактически не включены в Person POJO. Я ищу хороший «весенний путь» для этого. Клиент мог бы сделать что-то вроде этого/Пациенты/1/Предыдущее задание и/Пациенты/1/NextAppointment, но я ищу, чтобы сократить количество звонков (может быть, предварительная оптимизация?) И дать им возможность получить дополнительную информацию, если они понадобятся это, используя его href.
Это очень изящно, используя XStreamMarshaller, поскольку все, что я делаю, это просмотр POJO или списка POJO, и он обрабатывает его. Но мне нужно, чтобы они добрались до тех пор, пока их не отправят.
Спасибо!
Это имеет смысл.Поэтому я думаю, что у меня в основном есть два варианта: либо генерировать XML самостоятельно, используя различные бизнес-объекты, которые у меня есть, либо создать новый объект, который представляет формат вывода, который я хочу иметь, и использовать XStream. Проблема с новыми объектами заключается в том, что для этого потребуется куча кода клея и дублирование большинства полей из реальных объектов POJO. Теперь я просто подумываю о том, чтобы позволить клиенту собрать дополнительную информацию через дополнительные вызовы API, пока не будет доказано, что производительность неприемлема. –