【发布时间】:2023-04-10 15:34:01
【问题描述】:
春天我的控制器中有一个 post 端点,看起来像这样
@Autowired
private BookRepository bookRepository;
@PostMapping(path="/book")
public @ResponseBody BookEntity addBook(@RequestBody BookEntity bookEntity)
{
return this.bookRepository.save(bookEntity);
}
现在,如果提交了无效的json数据并调用了save函数,我的控制台会输出h.engine.jdbc.spi.SqlExceptionHelper : Duplicate entry '1091209' for key 'isbn'等错误
而且用户会看到一个非常不友好的 api 响应。
这带来的另一个问题似乎是跳过了 auto_incremented id,例如我去 1,2,4,跳过 3,因为第 3 个 api 调用是失败的 api 调用。
处理上述情况的最佳做法是什么?
【问题讨论】:
-
添加自定义@ExceptionHandler 以提供更友好的响应。见baeldung.com/exception-handling-for-rest-with-spring
标签: java hibernate spring-boot