文字列戻り値型を持つ Spring MVC の @ResponseBody メソッドでの HTTP 400 エラー処理
Spring MVC を使用して API を実装する場合、次の処理が重要ですエラーは優雅に。応答すべき一般的なエラー コードの 1 つは、「不正なリクエスト」を示す HTTP 400 です。
match メソッドが @ResponseBody でラップされた文字列を返す特定のシナリオでは、HTTP 400 で応答する方法を疑問に思うかもしれません。エラーコード。 ResponseEntity
これを解決するには、match メソッドの戻り値の型を ResponseEntity
更新されたメソッド:
<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>
この変更されたアプローチにより、応答エンティティを返すことができます。適切な HTTP ステータス コード。 matchId が無効な場合は、HTTP 400 ステータスの ResponseEntity を返すことができます。有効なリクエストの場合、HTTP 200 ステータスと JSON レスポンスを含む ResponseEntity を返すことができます。
Spring 4.1 以降:
Spring 4.1 以降、ResponseEntity クラスは以下を提供します。より簡潔なアプローチに使用できるヘルパー メソッド:
更新されたメソッド (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>
以上がSpring MVC @ResponseBody メソッドで文字列の戻り値の型を使用して HTTP 400 エラーを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。