Comment renvoyer conditionnellement le corps et l'état de la réponse personnalisée dans Spring Boot?


Tout ce que j'ai gagné

J'ai une application Spring Boot et cette méthode de gestion :

@PostMapping("/{id}")
public User create(@PathVariable("id") Long id, @RequestBody User user) {
    if (id > 0 && id < 10) {
        String fullName = user.getFirstName() + " " + user.getLastName();
        user.setId(id);
        user.setFullName(fullName);
    } else {
        //Return 401 ?
    }
    
    return userService.save(user);
}

Comment puis-je retourner le retour 401 ?

La réponse JSON devrait ressembler à :

{
    "msg": "empty",
    "status" : "401"
}
vszholobov

Vous pouvez le faire en utilisant ResponseEntity.

Vous devrez changer le type de retour de votre méthode en ResponseEntity<?>, et changer le corps de votre méthode en :

if (id > 0 && id < 10) {
    String fullName = user.getFirstName() + " " + user.getLastName();
    user.setId(id);
    user.setFullName(fullName);
    return new ResponseEntity<>(userService.save(user), HttpStatus.OK);
}

return new ResponseEntity<>(yourJsonObject, HttpStatus.UNAUTHORIZED);

Java Spring rest renvoie un json non autorisé

Articles connexes


Renvoyer la réponse HTTP avec le code d'état 202 dans Spring Boot

Seyed Vahid Hashemi: Comment puis-je renvoyer une réponse HTTP avec le code d'état 202? Je n'ai trouvé aucune référence à ce sujet dans la documentation de Spring Boot. user7294900: Retour HTTPStatus ACCEPTÉ , par exemple: return new ResponseEntity<>(HttpStat