Я создал один API отдыха в Spring-boot, проблема в том, что я принимаю 4 параметра в качестве аргумента requestbody в качестве объекта JSON.
Теперь, если я передаю объект JSON с 5 параметрами, которые все еще вызывают мой API, исключение утверждения не возникает при сериализации объекта JSON.
У меня есть один класс dto, как показано ниже с конструктором
public class testDto{
@NotNull(message = "fistName can not be null.")
private String fistName;
@NotNull(message = "lastName can not be null.")
private String lastName;
private String nickName;
public testDto() {
}
public testDto(@NotNull(message = "fistName can not be null.") final String fistName ,@NotNull(message = "lastName can not be null.") final String lastName , final String nickName){
super();
this.fistName = fistName;
this.lastName = lastName;
this.nickName = nickName;
}
}
Мои данные , как показано ниже,
@PostMapping(path ={ "/api/v1/user"}, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object> saveUser(
@Valid @RequestBody(required = true) final testDto dto) throws Exception {
}
Теперь при вызове моего API я передаю тело запроса , как показано ниже
{
"fistName" : "abc",
"lastName" : "xyz",
"nickName" : "pqr",
"age" : 25
}
Теперь, когда я передаю параметр age
и вызываю API, мой API все еще работает, а не выдает исключение для Никакого конструктора не найдено, так как я передал age, который не является членом моего класса dto.
Ожидаемый результат: не разрешать вызов API
Фактический результат: Позвольте мне вызвать API
Я также пытался с объявлением исключения утверждения и исключением привязки, но безуспешно.
также установить свойство
spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false