Java services RESTful - Quelle est la différence entre QueryParam et PathParam en termes de leur utilisation?
Quelle est la différence entre QueryParam et PathParam en termes de leur utilisation?
Je comprends que les données peuvent être transmises à un service en utilisant les deux d'entre eux. PathParam est les données qui précèdent ? dans l'URL et QueryParam sont le nom de la valeur des données après ?. Mais je me demande exactement comment ils sont utilisés.
Votre question est plus sur le comment chacun est utilisé, ou avez-vous vraiment dire demander si (c'est à dire, dans quelles circonstances) vous permettrait de coder quelque chose dans le chemin du vs en tant que paramètre de requête?
Kevin, je veux demander quand je doit coder quelque chose dans le chemin du vs en tant que paramètre de requête? Merci à l'avance..
Je suis plus intéressé de savoir quand je doit coder quelque chose comme une partie de chemin de param vs comme un paramètre de requête.
Kevin, je veux demander quand je doit coder quelque chose dans le chemin du vs en tant que paramètre de requête? Merci à l'avance..
Je suis plus intéressé de savoir quand je doit coder quelque chose comme une partie de chemin de param vs comme un paramètre de requête.
OriginalL'auteur Anil | 2012-05-02
Vous devez vous connecter pour publier un commentaire.
Il n'y a probablement pas une seule réponse correcte à la question dans la pratique, car il ya tellement de différents schémas d'URL d'utilisation dans "le sauvage". Cependant d'une manière utile de regarder ce serait en termes de REPOS URL traitement. En REST (REpresentational State Transfer), l'idée est d'être en mesure d'identifier toutes les ressources que vous souhaitez autoriser l'accès. Dans une commune de REPOS schéma, la partie du chemin d'accès de l'URL pourrait être considéré comme un jeu de coordonnées en N-space (c, x, y, z => //myApp/x/y/z) et les paramètres de la requête sont les prescripteurs. Ces prescripteurs pourraient être utilisés comme critères de recherche incomplète aux spécifications de chemin, de revenir une liste de ressources correspondants.
Voir le question suivante pour plus d'exemples de REPOS Url.
EDIT:
@marcok a une bonne réponse technique, mais comme une mise à jour de votre commentaire exposé, vous semblez plus intéressé quand choisir l'un sur l'autre. En général, si vous prévoyez de créer des "pure" API RESTful, tout ce qui fait partie du chemin d'accès doit identifier de manière unique les ressources de leur identité. Souvent, cela pourrait avoir votre URL se terminant par une valeur d'ID en tant que partie de la voie de l'identifier de manière unique une ressource.
Toutefois, si votre API est exposer directement la capacité de recherche/filtre par des attributs (probablement à l'exclusion des IDs), vous serez plus susceptible de coder que comme un paramètre de requête.
Ce sont juste des exemples, et il y a des opinions différentes de ce que signifie une bonne API, et plus spécifiquement, comment purement RESTful API doit être.
OriginalL'auteur Kevin Welker
@QueryParam
est utilisé pour accéder à des paires clé/valeur dans la chaîne de requête de l'URL (la partie après le ?). Par exemple, dans l'urlhttp://example.com?q=searchterm
, vous pouvez utiliser@QueryParam("q")
pour obtenir la valeur deq
.@PathParam
est utilisé pour faire correspondre une partie de l'URL en paramètre. Par exemple dans une url de la formehttp://example.com/books/{bookid}
, vous pouvez utiliser@PathParam("bookid")
pour obtenir l'id d'un livre.Voir cette page pour un exemple utilisé dans de JAX-RS.
OriginalL'auteur marcok
@QueryParam: Utilisé pour obtenir paramètre sous la forme de paires clé-valeur et basé sur clé dans QueryParam pouvez obtenir la valeur de la clé à partir de l'URL.
E. g. example.com/id=searchParam
@QueryParam("id") alors la valeur sera searchParam
@PathParam: Utilisé pour obtenir les paramètres(Si les paramètres contient par URL) à partir de l'URL.
E. g. abc.com/searchParam/{empId}
@PathParam("empId")
OriginalL'auteur Manish Kumar