Validation 处理REST Web服务的服务器端验证错误

Validation 处理REST Web服务的服务器端验证错误,validation,rest,spring-mvc,Validation,Rest,Spring Mvc,我正在寻找有关服务器端验证和处理服务器端验证错误的最佳实践 我的业务逻辑是更新课程实体。浏览器使用Spring MVC REST webservice方法,如下所示 我已经实现了客户端javascript验证,但出于安全原因,我还需要服务器端验证。例如,有人可以使用REST客户端向我的webservice方法发送任意数据 @RequestMapping(value = "/{id}", method = PUT, produces = "application/json") public Cur

我正在寻找有关服务器端验证和处理服务器端验证错误的最佳实践

我的业务逻辑是更新课程实体。浏览器使用Spring MVC REST webservice方法,如下所示

我已经实现了客户端javascript验证,但出于安全原因,我还需要服务器端验证。例如,有人可以使用REST客户端向我的webservice方法发送任意数据

@RequestMapping(value = "/{id}", method = PUT, produces = "application/json")
public Curriculum updateCurriculum(@PathVariable("id") Long curriculumId, @RequestBody @Validated({ ValidationGroups.CurriculumUpdate.class }) Curriculum curriculum,
        BindingResult bindingResult, HttpServletResponse response, @CurrentMember Member member) {
    if (bindingResult.hasErrors()) {
        return curriculum;
    }
    return curriculumService.updateCurriculum(member, curriculumId, curriculum);
}
我的第一个问题是,如果JSR303实现发现了服务器端验证错误(例如,课程对象中缺少数据),我应该向客户端返回什么。现在,我返回服务器从客户端接收到的课程对象。 我的第二个问题是,如果服务器端出现错误,我应该在响应中返回到客户端的HTTP状态是什么? 更广泛地说,上述代码在处理服务器接收的数据方面是否遵循REST最佳实践?可以改进吗?
请注意,我的问题不仅与HTTP状态有关,还与方法返回的内容和REST最佳实践有关。@Raedwald:如果您想结束我的文章,请首先回答我的第一个和第三个问题,因为您提供的链接只处理我的第二个问题!如果你有三个问题,问三个问题,而不是一个。现在可以归结为常识:你可以看到这三个问题都是紧密相关的。认为这是一个三重的问题。