У меня есть POJO, которое я хотел бы представить как XML из веб-службы, желательно с помощью JAX-B.Ролевая игра или стиль корзины Java-привязка bean?
Поля, которые должны отображаться в XML, зависят от того, какой тип пользователя выполняет запрос. Например, мы играем роль пользователей HumanResources и Finance. Пользователь может быть определен как:
@XmlRootElement
общественного класса пользователя {
@XmlElement общественности Строка someHumanResourceData;
@XmlElement public String someFinanceData;
}
Я хочу, чтобы пользователи HR, чтобы увидеть данные HR и финансов, чтобы увидеть данные финансов, но не более того. HR не должен видеть финансовые данные.
Есть ли рекомендуемый подход к тому, как это сделать? Какие условия поиска я могу использовать для поиска дополнительной информации в Интернете?
Несколько идей, которые я не нахожу привлекательными: 1) Я мог бы использовать подклассы, чтобы выставлять объекты FinanceUser и HumanResourceUser, которые имеют только соответствующие данные, и родительский пользователь с общими данными. Однако это хрупкое и может работать на небольшом примере, я считаю, что мне нужен более гибкий, композиционный подход для производства. 2) Сотрудник рекомендует подход «корзины покупок», в котором клиент запрашивает, какие поля он хочет с каждым запросом. Я не нахожу стандартного способа сделать это или даже многих других людей, которые сделали такой подход. Это звучит действительно самодельно и трудоемко для меня.
Другие идеи?
Это решение является опцией №1 от исходного поста, не так ли? Вы создали два типа: HumanResourceResponse и FinanceResponse. Исходя из некоторых критериев, вы возвращаете другой подтип. Я ищу что-то композиционное и гибкое. –
Вам нужен веб-сервис? Вы хотите ограничить возвращаемые данные. У вас может быть объект «DarcyWSResponse», в котором есть члены «FinanceData» и «HRData», которые могут распространять общий объект. Я просто говорю, что удобно переносить параметры веб-службы и ответ в объекте. – JeeBee
И я бы, конечно же, разработал веб-службу с точки зрения того, какие операции вы хотите получить в веб-службе, а не в структуре данных. API-интерфейсы веб-сервисов (Ajax, JAX-B (?)) Будут обрабатывать все кодировки XML и SOAP прозрачно. – JeeBee