在我的请求正文中,我以不同的方式传递参数进行验证。
{
“name” : []
}
这里正在执行我想用自定义错误消息限制的操作。
还有
{
“Name” : “”
}
我收到 400 错误请求,那么如何使用正确的错误消息来处理此问题。
在我的控制器中我有
if (myRequestResult.getName() == null || myRequestResult.getName().isEmpty()) {
throw exceiption ()
}else{
myService.setName(myRequestResult.getName())
}
工作正常,但现在我删除了它并使用验证器注释。
@Data
public class MyResultRequest {
@NotEmpty(message = "List of name must not be empty")
@Size(min = 1, message = "List of name must have at least one element")
private List<String> name;
}
这是我的休息控制器
@Log4j2
@RestController(value = "apiMyController")
@RequestMapping(path = "/api/v1/someRandomeURL")
@RequiredArgsConstructor(onConstructor = @__({@Autowired}))
public class ExecutionResultsController {
@RequestMapping(method = RequestMethod.POST)
public ExecutionResultDTO create(@RequestBody MyRequestResult myRequestResult) throws Exception {
myService.setName(myRequestResult.getName());
}
}
任何人都可以告诉我如何解决这个问题,因为我从这里开始关注这个问题Doc
您需要
@javax.validation.Valid
到其余控制器的参数才能启用验证。
所以你的休息控制器会像
@RequestMapping(method = RequestMethod.POST)
public ExecutionResultDTO create(@Valid @RequestBody MyRequestResult myRequestResult) throws Exception {
myService.setName(myRequestResult.getName());
}