Maison > Java > javaDidacticiel > le corps du texte

Comment renvoyer les codes d'erreur HTTP avec @ResponseBody dans Spring MVC ?

DDD
Libérer: 2024-11-03 05:59:03
original
302 Les gens l'ont consulté

How to Return HTTP Error Codes with @ResponseBody in Spring MVC?

Comment gérer les erreurs HTTP dans les méthodes Spring MVC @ResponseBody

Lorsque vous utilisez Spring MVC @ResponseBody pour renvoyer JSON dans une API RESTful, c'est essentiel pour gérer les erreurs HTTP avec élégance. Un code d'erreur courant est 400 (mauvaise demande). Ce code d'erreur indique que la requête n'est pas valide en raison de paramètres manquants ou incorrects.

Dans le scénario donné, où le type de retour de la méthode est String, on peut modifier la signature de la méthode pour renvoyer ResponseEntity<> plutôt. ResponseEntity<> vous permet de spécifier à la fois le corps de la réponse et le code d'état HTTP.

Pour répondre avec une erreur HTTP 400, vous pouvez renvoyer une ResponseEntity avec un corps nul et un code d'état HTTP approprié. Voici un exemple :

<code class="java">@RequestMapping(value = "/matches/{matchId}", produces = "application/json")
@ResponseBody
public ResponseEntity<String> match(@PathVariable String matchId) {
    String json = matchService.getMatchJson(matchId);
    if (json == null) {
        return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
    }
    return new ResponseEntity<>(json, HttpStatus.OK);
}</code>
Copier après la connexion

Alternativement, Spring 4.1 a introduit des méthodes d'assistance dans ResponseEntity qui simplifient encore davantage ce processus. Vous pouvez désormais utiliser :

<code class="java">return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);</code>
Copier après la connexion

ou pour une demande réussie :

<code class="java">return ResponseEntity.ok(json);</code>
Copier après la connexion

En traitant les erreurs HTTP de manière appropriée, vous garantissez une expérience cohérente et conviviale dans votre API RESTful.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal