Maison  >  Article  >  Java  >  Comment renvoyer les erreurs HTTP 400 à partir des méthodes Spring MVC @ResponseBody renvoyant des chaînes ?

Comment renvoyer les erreurs HTTP 400 à partir des méthodes Spring MVC @ResponseBody renvoyant des chaînes ?

DDD
DDDoriginal
2024-11-01 12:15:30767parcourir

How to Return HTTP 400 Errors from Spring MVC @ResponseBody Methods Returning Strings?

Gestion des erreurs HTTP 400 dans Spring MVC @ResponseBody Méthodes renvoyant une chaîne

Dans Spring MVC, il est courant d'utiliser @ResponseBody pour les API JSON. Cependant, la gestion des erreurs peut être difficile lorsque la méthode renvoie une chaîne. Cet article explore la manière la plus simple de répondre avec une erreur HTTP 400 dans de tels scénarios.

Dans l'exemple fourni :

@RequestMapping(value = "/matches/{matchId}", produces = "application/json")
@ResponseBody
public String match(@PathVariable String matchId) {
    String json = matchService.getMatchJson(matchId);
    if (json == null) {
        // TODO: how to respond with e.g. 400 "bad request"?
    }
    return json;
}

Pour renvoyer une erreur HTTP 400, l'approche la plus simple consiste à modifier le type de retour de la méthode à ResponseEntity<>. Cela vous permettra d'utiliser le code suivant pour 400 réponses :

return new ResponseEntity<>(HttpStatus.BAD_REQUEST);

Pour les demandes réussies, vous pouvez utiliser :

return new ResponseEntity<>(json, HttpStatus.OK);

Alternativement, pour Spring 4.1 et versions ultérieures, vous pouvez exploiter méthodes d'assistance dans ResponseEntity :

return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);

Et pour les requêtes réussies :

return ResponseEntity.ok(json);

En utilisant ResponseEntity<>, vous pouvez facilement gérer les erreurs HTTP dans vos méthodes @ResponseBody tout en conservant une simplicité et une mise en œuvre propre.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn