获取请求参数验证错误原因为 JSON

Get request parameters validation error cause as JSON

提问人:MatthieuBlm 提问时间:11/6/2023 最后编辑:MatthieuBlm 更新时间:11/6/2023 访问量:39

问:

我有一个用于验证端点参数的 Spring-Boot rest API。 我正在尝试通过提供更多结构化信息来改进端点的验证消息。jakarta.validations.constraints

我有一个端点,如下所示:

@PostMapping("api/foos")
public Foo createFoo(@Size(min = 4, max = 20) @RequestParam String fooName) {
    return this.fooService.create(fooName);
}

如果我使用错误的参数发出请求,例如 ,我会得到:fooNamePOST /api/foos?fooName=foo

{
    "timestamp": "2023-11-06T14:39:09.686+00:00",
    "status": 400,
    "error": "Bad Request",
    "message": "createFoo.fooName: size must be between 4 and 20",
    "path": "/api/foos"
}

是否可以覆盖此行为以在响应中具有更多结构化的详细信息,例如:

{
    "timestamp": "2023-11-06T14:39:09.686+00:00",
    "status": 400,
    "error": "Bad Request",
    "cause": [{
       "field": "fooName",
       "size": {
           "min": 4,
           "max": 20,
       }
    }],
    "path": "/api/foos"
}

我知道可以通过在类路径中添加一个来覆盖注释默认消息,但该消息仍然是一个字符串,因此在前端更难解析。ValidationMessages.properties

Java Spring-Boot 验证 国际化

评论


答: 暂无答案