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

时间:2014-12-17 13:04:51

标签: validation rest spring-mvc

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

我的业务逻辑是关于更新Curriculum实体。浏览器使用Spring MVC REST Web服务方法,如下所示。

我已经实现了客户端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);
}
  1. 我的第一个问题是如何返回客户端 - 如果有的话 - 应该由我的JSR 303实现获取服务器端验证错误(例如课程对象中缺少数据)。截至目前,我返回了服务器从客户端收到的Curriculum对象。
  2. 我的第二个问题是,如果出现服务器端错误,我应该将HTTP状态返回给客户端(在响应中)?
  3. 更广泛地说,就处理服务器收到的数据而言,上述代码是否遵循REST最佳实践?可以改进吗?

0 个答案:

没有答案