web-dev-qa-db-fra.com

Comment récupérer des paramètres de requête dans Spring Boot?

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:

http: // localhost: 8888/user/data/002

mais je veux accepter les demandes en utilisant les paramètres de requête :

http: // localhost: 8888/user? data = 002

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;
}
90
Mehandi Hassan

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;
}
158
afraisse

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 ....
}
1
Andrew Grothe

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);
    }

Voir ici aussi

0
TKPhillyBurb