Magasin @PathParam valeurs d'appel RESTE dans une liste ou un tableau
Ma fonction ressemble à ceci:
@PUT
@Path("property/{uuid}/{key}/{value}")
@Produces("application/xml")
public Map<String,ValueEntity> updateProperty(@Context HttpServletRequest request,
@PathParam("key") String key,
@PathParam("value") String value,
@PathParam("uuid") String uuid) throws Exception {
...
}
Je dois le modifier, de sorte qu'il accepte indéterminée(ou plusieurs) liste de paires clé-valeur d'appel RESTE, quelque chose comme
@Path("property/{uuid}/{key1}/{value1}/{key2}/{value2}/{key3}/{value3}/...")
Est-il possible de les stocker dans un tableau ou d'une liste, donc je n'ai pas la liste des dizaines de @PathParams et les paramètres, pour éviter cela:
@PathParam("key1") String key1,
@PathParam("key2") String key2,
@PathParam("key3") String key3,
OriginalL'auteur Dalai Llama | 2014-11-18
Vous devez vous connecter pour publier un commentaire.
Pourrait être une bonne occasion de repenser la conception. En utilisant
/
s, nous sommes dans une manière signifiante, avec chaque/
que nous essayons de localiser une ressource différente. Des paires clé/Valeur (dans le contexte de l'URL), sont principalement pour les paramètres de la requête ou de la matrice des paramètres.Si
/property/{uuid}
est le chemin d'accès à une ressource principale, et nous voulons simplement offrir certains paramètres pour le client pour l'accès à cette ressource, nous pourrions permettre à la matrice des paramètres ou des paramètres de requêteParamètres de matrice de (dans une url de requête) ressemblera à quelque chose comme
Une méthode pour obtenir les valeurs pourrait ressembler à quelque chose comme
PathSegment
Les Paramètres de la requête (dans une url de requête) pourrait ressembler à quelque chose comme
Une méthode pour obtenir les valeurs pourrait ressembler à quelque chose comme
UriInfo
La différence est que la Matrice de paramètres peuvent être intégrés dans les segments du chemin, tandis que les paramètres de la requête doit être placé à la fin de l'URL. Vous pouvez également remarquer une petite différence dans la syntaxe.
Certaines Ressources
Mise à JOUR
Également à la recherche à la
PUT
en vous signature de la méthode, il semble que vous essayez de mettre à jour une ressource en utilisant le chemin d'accès que les valeurs pour lesquelles vous essayez de mettre à jour, car je ne vois pas de paramètres dans votre méthode pour un corps d'entité. Lors de la Mise en, vous devez être l'envoi de la représentation dans le corps de l'entité, et non pas comme des segments de tracé ou paramètres.OriginalL'auteur Paul Samsotha
Une solution de contournement:
VariableStrings classe:
Chemin de séquence du segment de vararg tableau de JAX-RS /Jersey?
Un autre exemple où vous carte le paramètre facultatif pour une Carte:
OriginalL'auteur edubriguenti