Quelle est la différence entre @ PathParam et @QueryParam

je suis newbie à RESTful jersey. Je voudrais demander quelle est la différence entre @PathParam et @QueryParam à jersey?

81
demandé sur Joachim Sauer 2011-04-07 14:38:20

2 réponses

Les paramètres de requête

sont ajoutés à l'url après la marque ? , tandis qu'un paramètre de chemin fait partie de l'URL régulière.

dans L'URL en dessous de tom pourrait être la valeur d'un paramètre de chemin et il y a un paramètre de requête avec le nom id et la valeur 1 :

http://mydomain.com/tom?id=1

121
répondu Ruben 2012-09-18 07:59:42

en plus de la clarification ci-dessus fournie par @Ruben, je tiens à ajouter que vous pouvez également renvoyer équivalent de la même dans la mise en œuvre RESTFull de printemps.

Spécification JAX - RS @PathParam-lie la valeur d'un paramètre URI template ou d'un segment path contenant le paramètre template à un paramètre resource method, à un champ resource class ou à une propriété bean resource class.

@Path("/users/{username}")
public class UserResource {

        @GET
        @Produces("text/xml")
        public String getUser(@PathParam("username") String userName) {
            ...
        }
    }

@QueryParam-lie la valeur(s) D'un HTTP paramètre de requête vers un paramètre de méthode de Ressource, un champ de classe de ressource, ou une propriété bean de classe de ressource.

URI : utilisateurs/requête?de = 100

@Path("/users")
public class UserService {

    @GET
    @Path("/query")
    public Response getUsers(
        @QueryParam("from") int from){
}}

pour obtenir le même en utilisant le ressort, vous pouvez utiliser

@PathVariable (Spring) = = @PathParam (Jersey, JAX-RS),

@RequestParam (Spring) = = @QueryParam (Jersey, JAX-RS)

9
répondu JRishi 2016-07-18 11:21:55