Heim >Java >javaLernprogramm >Wie gebe ich HTTP-Fehlercodes mit @ResponseBody in Spring MVC zurück?

Wie gebe ich HTTP-Fehlercodes mit @ResponseBody in Spring MVC zurück?

DDD
DDDOriginal
2024-11-03 05:59:03377Durchsuche

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

So behandeln Sie HTTP-Fehler in Spring MVC @ResponseBody-Methoden

Wenn Sie Spring MVC @ResponseBody verwenden, um JSON in einer RESTful-API zurückzugeben, ist dies der Fall wichtig, um HTTP-Fehler ordnungsgemäß zu behandeln. Ein häufiger Fehlercode ist 400 (Bad Request). Dieser Fehlercode weist darauf hin, dass die Anfrage aufgrund fehlender oder falscher Parameter ungültig ist.

Im gegebenen Szenario, in dem der Rückgabetyp der Methode String ist, kann man die Signatur der Methode so ändern, dass ResponseEntity<> zurückgegeben wird. stattdessen. ResponseEntity<> ermöglicht Ihnen, sowohl den Antworttext als auch den HTTP-Statuscode anzugeben.

Um mit einem HTTP 400-Fehler zu antworten, können Sie eine ResponseEntity mit einem Nulltext und einem entsprechenden HTTP-Statuscode zurückgeben. Hier ein Beispiel:

<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>

Alternativ wurden in Spring 4.1 Hilfsmethoden in ResponseEntity eingeführt, die diesen Prozess noch weiter vereinfachen. Sie können jetzt Folgendes verwenden:

<code class="java">return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);</code>

oder für eine erfolgreiche Anfrage:

<code class="java">return ResponseEntity.ok(json);</code>

Durch die angemessene Behandlung von HTTP-Fehlern stellen Sie eine konsistente und benutzerfreundliche Erfahrung in Ihrer RESTful-API sicher.

Das obige ist der detaillierte Inhalt vonWie gebe ich HTTP-Fehlercodes mit @ResponseBody in Spring MVC zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn