Je développe un projet avec Spring Boot. J'ai un contrôleur qui accepte les requêtes GET .
Actuellement, j'accepte les demandes adressées aux types d'URL suivants:
mais je souhaite accepter les demandes utilisant des 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;
}
java
rest
spring-boot
Mehandi Hassan
la source
la source
@RequestParam
(bon point de départ: le guide officiel )Réponses:
Utilisez @RequestParam
la source
public @ResponseBody item getitem(@RequestParam("data") String itemid){
nécessite que le paramètre de requête de données soit toujours présent. Au lieu de cela, si vous l'utilisez de cette façonpublic @ResponseBody item getitem(@RequestParam Map<String, String> queryParameters){
, cela rend les données facultativesBien que la réponse acceptée par afraisse soit absolument correcte en termes d'utilisation
@RequestParam
, je suggérerais en outre d'utiliser un option <> car vous ne pouvez pas toujours vous assurer que le bon paramètre est utilisé. De plus, si vous avez besoin d'un Integer ou d'un Long, utilisez simplement ce type de données pour éviter de transtyper les types ultérieurement dans le DAO.la source
Dans Spring boot: 2.1.6, vous pouvez utiliser comme ci-dessous:
@ApiOperation est une annotation qui vient de Swagger api, elle est utilisée pour documenter les apis.
la source
required = true
par défautCela m'intéressait également et je suis tombé sur quelques exemples sur le site Spring Boot.
Voir aussi ici
la source