Jackson désérialisation sur plusieurs types

J'ai une classe abstraite appelée Instance puis deux implémentations de cette, UserInstance et HardwareInstance. La question que je vais avoir, c'est que lorsque j'appelle le point de terminaison rest pour un @POST dans la base de données, idéalement je voulais que ça ressemble à .../rest/soexample/instance/create où l'instance est passé pour le RESTE de point de terminaison. Si Instance n'était pas abstraite avec plus d'une mise en œuvre, il serait très bien, mais depuis que j'ai 2, j'obtiens un Jackson.databind erreur.

" problème: résumé des types doivent être mappés aux types de béton, ont coutume deserializer, ou être instancié avec d'autres informations de type"

Après avoir cherché une solution à ce que j'ai trouvé une réponse qui dit que je pouvais utiliser quelque chose comme:

@JsonDeserialize(as=UserInstance.class)

Mais il semble comme une cette isonly utile si l'on est une implémentation de la classe abstraite. En supposant que je ne peux pas appeler deux fois puisqu'il n'y aurait aucun moyen pour elle de décider quel type d'instance, il serait.

Donc, je me demande quelle est la meilleure façon de gérer cette situation? Dois-je créer différents points de terminaison? Comme:

.../rest/soexample/userinstance/create & .../rest/soexample/hardwareinstance/create

Je ne suis pas trop sûr que je suis un noobie @ RESTE, si activement en train d'apprendre. Merci!

source d'informationauteur erp | 2015-09-24