为请求正文使用自定义对象包装器

时间:2017-01-26 00:57:22

标签: spring

我有一个带有以下API的Spring服务:

dt[,Band:=cut(Price, 5)]
dt[dt[, list(Band=levels(Band))], on="Band"][, sum(Volume, na.rm=TRUE), by="Band"]

请求正文

/v1/createUser

正文中的{ "UserId" : "some-guid-value", "Username" : "username", "password" : "hashed-password" } 是可选的。其他值是强制性的。我希望我的API控制器定义如下:

UserId

现在,我的问题是,我如何(或者甚至可以)创建CreateUserRequest类,以便如果Spring没有看到 @RequestMapping(method = RequestMethod.POST, value = "v1/createUser") @ResponseBody public void createUser( @RequestBody CreatUserRequest body) Username,它将拒绝该请求作为身体的一部分。 password是可选的,可能存在也可能不存在。

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试

public class CreatUserRequest {
  @NotBlank
  private String username, password;

  private UUID userId;
  // getter and setter
}

答案 1 :(得分:0)

我会完成彼得的答案。 1.使用您的DTO中的@NotBlank来判断您的病情。 2.通过@Valid验证您的休息控制器上的条目,如下所示:

public void createUser(@RequestBody @Valid CreatUserRequest body)

这应该有用。