Heim  >  Artikel  >  Java  >  Wie behandelt man HTTP 400-Fehler in Spring MVC @ResponseBody-Methoden mit String-Rückgabetyp?

Wie behandelt man HTTP 400-Fehler in Spring MVC @ResponseBody-Methoden mit String-Rückgabetyp?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-28 02:30:01262Durchsuche

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

HTTP 400-Fehlerbehandlung in den @ResponseBody-Methoden von Spring MVC mit String-Rückgabetyp

Bei der Implementierung einer API mit Spring MVC ist die Handhabung von entscheidender Bedeutung Fehler elegant. Ein häufiger Fehlercode, auf den reagiert werden muss, ist HTTP 400, was auf eine „fehlerhafte Anfrage“ hinweist.

In Ihrem gegebenen Szenario, in dem die Match-Methode einen in @ResponseBody eingeschlossenen String zurückgibt, fragen Sie sich möglicherweise, wie Sie mit HTTP 400 reagieren sollen Fehlercode. Der traditionelle Ansatz mit ResponseEntity ist hier nicht direkt anwendbar, da der Rückgabetyp Ihrer Methode String ist.

Um dieses Problem zu beheben, sollten Sie den Rückgabetyp Ihrer Match-Methode in ResponseEntity ändern. Dies bietet Ihnen die Flexibilität, HTTP-Statuscodes expliziter zu verarbeiten.

Aktualisierte Methode:

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

Dieser modifizierte Ansatz ermöglicht es Ihnen, eine ResponseEntity mit einem zurückzugeben entsprechenden HTTP-Statuscode. Wenn die matchId ungültig ist, können Sie ResponseEntity mit dem HTTP-400-Status zurückgeben. Für eine gültige Anfrage können Sie ResponseEntity mit HTTP 200-Status und der JSON-Antwort zurückgeben.

Spring 4.1 und höher:

Ab Spring 4.1 stellt die ResponseEntity-Klasse Folgendes bereit Hilfsmethoden, die Sie für einen prägnanteren Ansatz verwenden können:

Aktualisierte Methode (Frühjahr 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>

Das obige ist der detaillierte Inhalt vonWie behandelt man HTTP 400-Fehler in Spring MVC @ResponseBody-Methoden mit String-Rückgabetyp?. 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