2017-07-12 3 views
0

J'ai une route qui ressemble à ceci:Comment fusionner les paramètres de chemin multiples en un seul objet

/foobar/123/2 

Et je voudrais utiliser les trois paramètres pour obtenir un seul objet pour que je puisse utiliser quelque chose comme ça :

@Path("/{type}/{id}/{version}") 
public Response getEntity(Entity entity); 

au lieu de:

@Path("/{type}/{id}/{version}") 
public Response getEntity(@PathParam("type") Type type, @PathParam("id") Long entityId, @PathParam("version") Long version); 

ParamConverter semble prometteur, mais il peut le manipuler un seul String pas trois. Autre chose que je pourrais essayer?

Répondre

0

Je crois que vous n'avez pas de chance.

De JSR-000339 "Java [TM] API pour les services Web RESTful 2.0 de sortie finale pour l'évaluation"

les types suivants sont pris en charge

  1. Types pour lesquels une ParamConverter est disponible via un organisme enregistré ParamConverterProvider . Voir Javadoc pour ces classes pour plus d'informations.
  2. Types de primitives
  3. Types dont le constructeur accepte un seul argument String.
  4. Types qui ont une méthode statique nommée valueOf ou fromString avec un seul argument String renvoyant une instance du type. Si les deux méthodes sont présentes, alors valueOf DOIT être utilisé sauf si le type est une énumération, auquel cas FROMString DOIT être utilisé.
  5. List, Set, ou SortedSet, où T satisfait 3 ou 4 ci-dessus