Je développe un projet en utilisant Spring Boot. J'ai un contrôleur qui accepte _ obtenir _ les demandes .
Actuellement, j'accepte les demandes des types d'URL suivants:
mais je veux accepter les demandes en utilisant les paramètres de requête :
Voici le code de mon contrôleur:
@RequestMapping(value="/data/{itemid}", method = RequestMethod.GET)
public @ResponseBody
item getitem(@PathVariable("itemid") String itemid) {
item i = itemDao.findOne(itemid);
String itemname = i.getItemname();
String price = i.getPrice();
return i;
}
Utilisez @ RequestParam
@RequestMapping(value="user", method = RequestMethod.GET)
public @ResponseBody item getitem(@RequestParam("data") String itemid){
item i = itemDao.findOne(itemid);
String itemname = i.getItemname();
String price = i.getPrice();
return i;
}
Bien que la réponse acceptée par afraisse soit tout à fait correcte en ce qui concerne l'utilisation de @RequestParam
, je suggérerais également d'utiliser un paramètre optionnel <> car vous ne pouvez pas toujours vous assurer que le bon paramètre est utilisé. De plus, si vous avez besoin d'un entier ou long, utilisez simplement ce type de données pour éviter les transtypages ultérieurement dans la DAO.
@RequestMapping(value="/data", method = RequestMethod.GET)
public @ResponseBody
item getitem(@RequestParam("itemid") Optional<Integer> itemid) {
if( itemid.isPresent()){
item i = itemDao.findOne(itemid.get());
return i;
} else ....
}
Cela m’intéressait également et j’ai trouvé des exemples sur le site Spring Boot.
// get with query string parameters e.g. /system/resource?id="rtze1cd2"&person="sam smith"
// so below the first query parameter id is the variable and name is the variable
// id is shown below as a RequestParam
@GetMapping("/system/resource")
// this is for swagger docs
@ApiOperation(value = "Get the resource identified by id and person")
ResponseEntity<?> getSomeResourceWithParameters(@RequestParam String id, @RequestParam("person") String name) {
InterestingResource resource = getMyInterestingResourc(id, name);
logger.info("Request to get an id of "+id+" with a name of person: "+name);
return new ResponseEntity<Object>(resource, HttpStatus.OK);
}