Behandeln von HTTP 400-Fehlern in @ResponseBody-Methoden von Spring MVC, die einen String zurückgeben
In Spring MVC ist es üblich, @ResponseBody für JSON-APIs zu verwenden. Allerdings kann die Behandlung von Fehlern eine Herausforderung sein, wenn die Methode einen String zurückgibt. In diesem Artikel wird die einfachste Möglichkeit untersucht, in solchen Szenarien mit einem HTTP 400-Fehler zu reagieren.
Im bereitgestellten Beispiel:
@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; }
Um einen HTTP 400-Fehler zurückzugeben, besteht der einfachste Ansatz darin, ihn zu ändern der Rückgabetyp der Methode an ResponseEntity<>. Dadurch können Sie den folgenden Code für 400 Antworten verwenden:
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
Für erfolgreiche Anfragen können Sie Folgendes verwenden:
return new ResponseEntity<>(json, HttpStatus.OK);
Alternativ können Sie für Spring 4.1 und höher nutzen Hilfsmethoden in ResponseEntity:
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
Und für erfolgreiche Anfragen:
return ResponseEntity.ok(json);
Durch die Verwendung von ResponseEntity<> können Sie HTTP-Fehler in Ihren @ResponseBody-Methoden einfach behandeln und gleichzeitig eine unkomplizierte Funktion beibehalten und saubere Umsetzung.
Das obige ist der detaillierte Inhalt vonWie gebe ich HTTP 400-Fehler von Spring MVC @ResponseBody-Methoden zurück, die Zeichenfolgen zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!