J'ai quelques POJO qui sont à la base de cette API RESTful sur laquelle je travaille. Cependant, certaines des réponses que j'ai besoin d'inclure d'autres informations pour rendre l'API plus complète. Je ne veux vraiment pas mettre ces informations supplémentaires dans le POJO, mais l'inclure dans la couche du service Web comme si c'était le cas.MarshallingView au printemps pour ajuster la sortie?
Il traite des « gens » qui ont « rendez-vous ». Chaque rendez-vous n'a qu'une seule personne. Donc, j'ai un appel RESTful comme/Patients/1 et il saisit fondamentalement le POJO pour la personne et j'utilise actuellement XStream pour le sérialiser et l'envoyer sur son chemin. Cela fonctionne très bien, mais je voudrais faire quelque chose comme ceci:
<Person>
<firstName>James</firstName>
... other fields ...
<nextAppointment href="/Appointment/12345>2010-02-19</nextAppointment>
<prevAppointment href="/Appointment/12346>2010-01-01</prevAppointemnt>
</Person>
et la nomination prochaine où prev ne sont pas réellement inclus dans la personne POJO. Je suis à la recherche d'un bon "chemin du printemps" pour y parvenir. Le client pourrait faire quelque chose comme ça/patients/1/PreviousAppointment et/patients/1/NextAppointment, mais je cherche à réduire le nombre d'appels (pré-optimisation peut-être?) Et leur donner un moyen d'obtenir plus d'informations si elles ont besoin en utilisant il href.
Il est très élégant en utilisant la XStreamMarshaller depuis tout ce que je le fais la main, l'vue POJO ou liste des POJO et il gère. Mais j'ai besoin de les faire soigner un peu avant qu'ils ne soient envoyés.
Merci!
Cela a du sens.Donc, je pense que j'ai essentiellement deux options, soit générer le XML moi-même en utilisant les différents objets de gestion que j'ai, ou créer un nouvel objet qui représente le format de sortie que je veux avoir et utiliser XStream sur cela. Le problème avec les nouveaux objets est qu'il nécessitera un tas de code de colle et une duplication de la plupart des champs des objets POJO réels. Je pense maintenant à laisser le client rassembler les informations supplémentaires via des appels d'API supplémentaires jusqu'à ce qu'il soit prouvé que les performances sont inacceptables. –