Maison > Java > javaDidacticiel > le corps du texte

Comment gérer les erreurs HTTP 400 dans les méthodes Spring MVC @ResponseBody avec le type de retour de chaîne ?

Patricia Arquette
Libérer: 2024-10-28 02:30:01
original
358 Les gens l'ont consulté

How to Handle HTTP 400 Errors in Spring MVC @ResponseBody Methods with String Return Type?

Gestion des erreurs HTTP 400 dans les méthodes @ResponseBody de Spring MVC avec type de retour de chaîne

Lors de l'implémentation d'une API à l'aide de Spring MVC, il est crucial de gérer erreurs avec élégance. Un code d'erreur courant auquel répondre est HTTP 400, indiquant une « mauvaise demande ».

Dans votre scénario donné, où la méthode match renvoie une chaîne enveloppée dans @ResponseBody, vous vous demandez peut-être comment répondre avec HTTP 400. code d'erreur. L'approche traditionnelle utilisant ResponseEntity n'est pas directement applicable ici, car le type de retour de votre méthode est String.

Pour résoudre ce problème, envisagez de changer le type de retour de votre méthode de correspondance en ResponseEntity. Cela vous offrira la flexibilité nécessaire pour gérer les codes d'état HTTP de manière plus explicite.

Méthode mise à jour :

<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

Cette approche modifiée vous permet de renvoyer une ResponseEntity avec un code d'état HTTP approprié. Si le matchId n'est pas valide, vous pouvez renvoyer ResponseEntity avec le statut HTTP 400. Pour une requête valide, vous pouvez renvoyer ResponseEntity avec le statut HTTP 200 et la réponse JSON.

Spring 4.1 et versions ultérieures :

À partir de Spring 4.1, la classe ResponseEntity fournit méthodes d'assistance que vous pouvez utiliser pour une approche plus concise :

Méthode mise à jour (Spring 4.1) :

<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.status(HttpStatus.BAD_REQUEST).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