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
Pour résoudre ce problème, envisagez de changer le type de retour de votre méthode de correspondance en ResponseEntity
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>
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>
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!