私は次のようなアプローチで、シンプルな JSON API に Spring MVC を使用しています@ResponseBody
。(JSON を直接生成するサービス レイヤーはすでにあります。)
@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 エラーで応答を返す最もシンプルでクリーンな方法は何ですか?
次のようなアプローチに遭遇しました:
return new ResponseEntity(HttpStatus.BAD_REQUEST);
...ただし、メソッドの戻り値の型は ResponseEntity ではなく String なので、ここでは使用できません。
ベストアンサー1
戻り値の型を に変更する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);