Dans tous les tutoriels et articles que j'ai lus concernant les ajouts RESTful de Spring 3 à Spring MVC, je n'ai jamais vu qu'une seule façon pour l'utilisation de transmettre des données de requête, via un @PathVariable
, comme ça :
@RequestMapping(value="/shops/{name}", method=RequestMethod.GET)
public @ResponseBody Shop getShopInJSON(@PathVariable String name) {
...
}
qui répondrait à quelque chose comme http://www.example.com/myservlet/shops/{name}
, qui pourrait être évalué à http://www.example.com/myservlet/shops/thebestshoparound
.
Ma question est la suivante: est-il possible de configurer une interface RESTful qui accepte les demandes basées sur des chaînes de requête classiques, par exemple http://www.example.com/myservlet/shops?name=thebestshoparound
, au lieu de PathVariables
?
Cela semble être une question vraiment simple, mais je ne la trouve nulle part en ligne.
Oui, utilisez l'annotation @RequestParam
, voici un exemple:
public @ResponseBody Shop getShopInJSON(@PathVariable String name, @RequestParam(value="query", required=false) String query) {
// do stuff
}