2017-01-26 3 views
1

У меня есть Spring обслуживание со следующим API:Использование пользовательской обертки объектов для тела запроса

/v1/createUser 

Request Body

{ 
"UserId" : "some-guid-value", 
"Username" : "username", 
"password" : "hashed-password" 
} 

UserId в организме не является обязательным. Другие значения являются обязательными. Я хотел бы мой контроллер API, чтобы определить, как это:

@RequestMapping(method = RequestMethod.POST, value = "v1/createUser") 
    @ResponseBody 
    public void createUser(
          @RequestBody CreatUserRequest body) 

Теперь мой вопрос, как я (или даже возможно) создать класс CreateUserRequest таким образом, что весна будет отклонить запрос, если он Безразлично см. Username и password как часть кузова. UserId является необязательным и может быть или не быть.

Спасибо!

ответ

0

Попробуйте

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

    private UUID userId; 
    // getter and setter 
} 
+1

Это не работает для меня. Он по-прежнему входит в контроллер и выполняет функцию. – AndroidDev93

0

Я бы полный ответ Питера. 1. Decalre ваше состояние, используя: @NotBlank в вашем DTO. 2. Подтвердить запись на вас отдыхать контроллер через @Valid так:

public void createUser(@RequestBody @Valid CreatUserRequest body) 

Это должно работать.

Смежные вопросы