Heim > Java > javaLernprogramm > Hauptteil

Wie antworte ich mit HTTP 400 „Bad Request' in Spring MVC @ResponseBody?

Barbara Streisand
Freigeben: 2024-10-31 05:54:01
Original
348 Leute haben es durchsucht

How to respond with HTTP 400

Antworten mit HTTP 400-Fehler in Spring MVC @ResponseBody

Bei der Entwicklung von JSON-APIs mit dem @ResponseBody-Ansatz von Spring MVC kann es Szenarien geben, in denen Sie müssen mit bestimmten HTTP-Statuscodes antworten, z. B. 400 „Bad Request“.

Betrachten Sie die folgende Aktionsmethode:

<code class="java">@RequestMapping(value = "/matches/{matchId}", produces = "application/json")
@ResponseBody
public String match(@PathVariable String matchId) {
    String json = matchService.getMatchJson(matchId);
    if (json == null) {
        // How to respond with HTTP 400 "Bad Request"?
    }
    return json;
}</code>
Nach dem Login kopieren

In diesem Beispiel ist die Methode mit @ResponseBody annotiert , was angibt, dass der Rückgabewert direkt in den HTTP-Antworttext geschrieben werden soll. Der ursprüngliche Code bietet jedoch keinen Mechanismus für die Reaktion mit einem HTTP-400-Fehler.

Um dieses Problem zu beheben, sind mehrere Ansätze zu berücksichtigen:

  1. Ändern des Rückgabetyps in ResponseEntity: Durch Ändern des Rückgabetyps der Methode in ResponseEntity<> erhalten Sie Zugriff auf Methoden, mit denen Sie den HTTP-Statuscode festlegen können. Sie können dann ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null) verwenden, um eine 400-Fehler-Antwort zurückzugeben.
  2. Verwendung von ResponseEntity-Hilfsmethoden: Für Spring-Versionen 4.1 und höher bietet ResponseEntity Hilfsmethoden wie ResponseEntity.badRequest().body(null) und ResponseEntity.ok(json), um den Antworterstellungsprozess zu vereinfachen.

Daher würde die aktualisierte Methode wie folgt aussehen:

<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.badRequest().body(null);
    }
    return ResponseEntity.ok(json);
}</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie antworte ich mit HTTP 400 „Bad Request' in Spring MVC @ResponseBody?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!