Maison > Java > javaDidacticiel > le corps du texte

Comment répondre avec HTTP 400 « Bad Request » dans Spring MVC @ResponseBody ?

Barbara Streisand
Libérer: 2024-10-31 05:54:01
original
347 Les gens l'ont consulté

How to respond with HTTP 400

Réponse avec une erreur HTTP 400 dans Spring MVC @ResponseBody

Lors du développement d'API JSON à l'aide de l'approche @ResponseBody de Spring MVC, il peut y avoir des scénarios dans lesquels vous devez répondre avec des codes d'état HTTP spécifiques, tels que 400 "Bad Request".

Considérez la méthode d'action suivante :

<code class="java">@RequestMapping(value = "/matches/{matchId}", produces = "application/json")
@ResponseBody
public String match(@PathVariable String matchId) {
    String json = matchService.getMatchJson(matchId);
    if (json == null) {
        // How to respond with HTTP 400 "Bad Request"?
    }
    return json;
}</code>
Copier après la connexion

Dans cet exemple, la méthode est annotée avec @ResponseBody , indiquant que la valeur de retour doit être écrite directement dans le corps de la réponse HTTP. Cependant, le code initial ne fournit pas de mécanisme pour répondre avec une erreur HTTP 400.

Pour résoudre ce problème, il existe plusieurs approches à considérer :

  1. Modification du type de retour en ResponseEntity : en modifiant le type de retour de la méthode en ResponseEntity<>, vous accédez aux méthodes qui vous permettent de définir le code d'état HTTP. Vous pouvez ensuite utiliser ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null) pour renvoyer une réponse d'erreur 400.
  2. Utilisation des méthodes d'assistance ResponseEntity : pour les versions Spring 4.1 et supérieures, ResponseEntity fournit méthodes d'assistance telles que ResponseEntity.badRequest().body(null) et ResponseEntity.ok(json) pour simplifier le processus de création de réponse.

Par conséquent, la méthode mise à jour ressemblerait à :

<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 ResponseEntity.badRequest().body(null);
    }
    return ResponseEntity.ok(json);
}</code>
Copier après la connexion

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!