J'essaie actuellement d'ajouter une nouvelle fonctionnalité à mon API REST.Java REST Annotation de l'API
Fondamentalement, je veux ajouter la possibilité d'ajouter des paramètres de requête à la fin d'un chemin et transformer cela en une carte de toutes les options de requête par exemple.
mon code actuel me permet de faire des choses comme
localhost:8181/cxf/check/
localhost:8181/cxf/check/format
localhost:8181/cxf/check/a/b
localhost:8181/cxf/check/format/a/b
et cela utilisera toutes les @pathparam comme variables de chaîne pour générer une réponse.
Ce que je veux faire maintenant est d'ajouter:
localhost:8181/cxf/check/a/b/?x=abc&y=def&z=ghi&...
localhost:8181/cxf/check/format/a/b/?x=abc&y=def&z=ghi&...
et je serais alors cette générer une carte qui peut être utilisé avec le pathparam pour construire la réponse
x => abc
y => def
z => ghi
... => ...
J'étais penser quelque chose comme ceci [ci-dessous] cependant le @QueryParam semble manipuler seulement une valeur clé et pas une carte d'eux.
@GET
@Path("/{format}/{part1}/{part2}/{query}")
Response getCheck(@PathParam("format") String format, @PathParam("part1") String part1, @PathParam("part2") String part2, @QueryParam("query") Map<K,V> query);
Ci-dessous est mon code d'interface actuel.
@Produces(MediaType.APPLICATION_JSON)
public interface RestService {
@GET
@Path("/")
Response getCheck();
@GET
@Path("/{format}")
Response getCheck(@PathParam("format") String format);
@GET
@Path("/{part1}/{part2}")
Response getCheck(@PathParam("part1") String part1,@PathParam("part2") String part2);
@GET
@Path("/{format}/{part1}/{part2}")
Response getCheck(@PathParam("format") String format, @PathParam("part1") String part1, @PathParam("part2") String part2);
}
Le @Context est quelque chose que je regardais que je l'aime (comme construire une carte) problème mais j'avais obtenir ce travail (peut-être juste besoin de regarder quelques exemples de plus.) cela me permet d'utiliser @Path ("/ {format}/{part1}/{part2} /") ou bien dois-je le laisser vide puis extraire le chemin plus tard de l'UriInfo? –
Vous pouvez utiliser '@ PathParam' et' @Context UriInfo' ensemble. J'ai inclus l'exemple complet dans la réponse – pedrofb
Merci, je vais tester dès que possible Je vous remercie! –