3
使用ReponseEntity返回錯誤消息的最佳方式是什麼?ResponseEntity Spring MVC
說我有以下方法
@Transactional
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public ResponseEntity<User> getUser(@PathVariable("id") Long id) {
User user = userRepository.findOne(id);
if (user == null) {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
else {
return new ResponseEntity<>(user, HttpStatus.OK);
}
現在,如果我想返回一個錯誤信息給前端?我不能做到以下幾點,因爲該方法返回類型爲
ResponseEntity<User>
不
ResponseEntity<String>
所以這是行不通的
if (user == null) {
return new ResponseEntity<>("User does not exist", HttpStatus.NOT_FOUND);
}
我可以使該方法返回類型
ResponseEntity<Object>
但那只是eems slopy和糟糕的做法。我希望能夠返回至少一個簡短的錯誤信息,以便指出前端出了什麼問題。這樣做的最好方法是什麼?
更新:
經過一番周圍挖我想出了這一點,它似乎工作,但好奇,如果它會影響性能。
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public ResponseEntity<?> getUser(@PathVariable("id") Long id) {
User user = userRepository.findOne(id);
if (user == null) {
return new ResponseEntity<>("User not found", HttpStatus.NOT_FOUND);
}
else {
return new ResponseEntity<>(user, HttpStatus.OK);
}
}
有趣的....這實際上是將工作一樣好。我可以創建一個通用的RecordNotFoundException並將其映射到HttpStatus.NOT_FOUND。謝謝(你的)信息。 – greyfox