Используя RESTful API от многочисленных поставщиков на протяжении многих лет, позвольте мне дать вам представление о "пользователях".
Часто документация просто плоха или устарела. Возможно, имя параметра изменилось, возможно, вы указали точный регистр имен свойств, возможно, вы использовали неверный шрифт в своей документации.
Так что по умолчанию REST API не проверяет дополнительные атрибуты, не представленные в тело запроса; в противном случае проверяется, присутствуют ли предоставленные атрибуты или нет. если вы не хотите десериализовать собственность, которой нет; Вы можете добавить проверки следующим образом:
import java.io.Serializable;
import javax.validation.constraints.NotBlank;
public class DemoDto implements Serializable{
private static final long serialVersionUID = 1L;
private int id;
@NotBlank(message = "name can't be empty.")
private String name;
//getters & setters
}
Контроллер:
import javax.validation.Valid;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@PostMapping("/test")
public ResponseEntity<DemoDto> test(@RequestBody @Valid DemoDto demoDto){
return ResponseEntity.ok(demoDto);
}
}