gpt4 book ai didi

java - 如何抛出 Spring @Valid "exception"?

转载 作者:行者123 更新时间:2023-12-01 22:04:21 27 4
gpt4 key购买 nike

我正在使用 Spring 构建我的 REST api。我的方法之一是用@Valid 装饰的。这会生成一个如下所示的 JSON:

{
"timestamp": "2019-11-04T19:07:08.387+0000",
"status": 400,
"error": "Bad Request",
"errors": [
{
"codes": [
"NotNull.customer.firstName",
"NotNull.firstName",
"NotNull.java.lang.String",
"NotNull"
],
"arguments": [
{
"codes": [
"customer.firstName",
"firstName"
],
"arguments": null,
"defaultMessage": "firstName",
"code": "firstName"
}
],
"defaultMessage": "must not be null",
"objectName": "customer",
"field": "firstName",
"rejectedValue": null,
"bindingFailure": false,
"code": "NotNull"
}
],
"message": "Validation failed for object='customer'. Error count: 1",
"path": "/customers"
}

进行 Google 搜索时,如果要产生 HTTP 400 错误,我应该抛出 ResponseStatusException(HttpStatus.BAD_REQUEST);

这会生成如下 JSON:

{
"timestamp": "2019-11-04T19:08:02.408+0000",
"status": 400,
"error": "Bad Request",
"message": "400 BAD_REQUEST",
"path": "/customers"
}

该消息显然很容易更改,但我更多地询问如何获取 Errors 数组。这似乎不在 ResponseStatusException 中?

我可以很容易地重新创建它,但我希望已经构建了一个?

编辑:这不是输入验证...这会引发输入错误,但我需要先访问数据库才能进行实际验证,因此该部分位于我的服务层中并引发如果无效,则发生内部异常。

最佳答案

如果您使用 validator ,则可以使用 validator.properties 等配置文件自定义错误

关于java - 如何抛出 Spring @Valid "exception"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58701381/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com