Sei que o título é meio estranho, mas não tive uma idéia melhor. rs…
Contextualizando:
Acabei de criar um serviço REST utilizando: Spring-MVC e o Jackson-JSON.
Estou consumindo este serviço com uma interface gráfica EXT-JS.
A biblioteca EXT-JS resolveu indiretamente, com algumas particularidades, um problema de leitura das associações entre os objetos (Agregações e Composições), coisa que o Hibernate ou qualquer outro JPA provider resolve com Lazy Loading.
Hoje surgiu a necessidade de uma aplicação Java consumir o serviço que eu criei.
Como meu serviço é implementado em java, já tenho boa parte da infra criada, teoricamente seria simples criar um cliente com JSON marshalling automático.
A abstração do cliente seria com a mesma interface que eu abstraio a persitência dos dados, isso mesmo, um Repositório. Afinal quais são as operações de um repositório? Create, Retrieve, Update e Delete fazendo um paralelo com REST POST, GET, UPDATE e DELETE. Falando nisso quais são mesmo as operações disponíveis em um EntityManager? São paralelas também né? Pelo menos ao meu ver são, o que vocês acham? Qual seria a diferença entre acessar um repositório JPA ou REST?
Decidi fazer a implementação do repositório REST com a biblioteca HttpClient da Apache. Tudo ia de vento em poupa até que me dei conta das associações entre os objetos. Meu Deus! Como vou lidar com isso? Vou ter que implementar algo como o lazy loading do hibernate? FFFuuu$%#%%.
Alguém conhece alguma implementação pronta que faz isso? Ou tem uma sujestão de implementação? Ou queira debater minha visão?
Já dei uma olhada por alto no Jersey Client API e me pareceu que ele faz marshalling, mas como cuida das associações entre os objetos? Será que cuida?
Mais uma vez conto com a ajuda de vocês!