我在春天的控制器中有一个后端点,看起来像这样
@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次api呼叫是失败的api呼叫而跳过3次。
处理上述情况的最佳做法是什么?
答案 0 :(得分:1)
您可以定义自己的错误处理程序,该处理程序扩展 ResponseEntityExceptionHandler 并捕获数据库特定的异常。这是一个代码......
<?php
$a = 1000255869;
echo $a;//output - 1000255869
$a = number_format($a);
echo $a;//output - 1,000,255,869
?>