文字列を返す @ResponseBody メソッドでの Spring MVC での HTTP 400 エラーの処理
Spring MVC では、JSON API に @ResponseBody を使用するのが一般的です。ただし、メソッドが文字列を返す場合、エラーの処理が困難になることがあります。この記事では、このようなシナリオで HTTP 400 エラーに応答する最も簡単な方法について説明します。
以下の例では、
@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; }
HTTP 400 エラーを返すための最も簡単な方法は、次のように変更することです。 ResponseEntity<> へのメソッドの戻り値の型。これにより、400 件の応答に対して次のコードを使用できるようになります。
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
成功したリクエストには、次のコードを使用できます。
return new ResponseEntity<>(json, HttpStatus.OK);
代わりに、Spring 4.1 以降では、次のコードを利用できます。 ResponseEntity のヘルパー メソッド:
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
成功したリクエストの場合:
return ResponseEntity.ok(json);
ResponseEntity<> を使用すると、簡単な処理を維持しながら @ResponseBody メソッドで HTTP エラーを簡単に処理できます。そしてクリーンな実装。
以上が文字列を返す Spring MVC @ResponseBody メソッドから HTTP 400 エラーを返す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。