#java #spring-boot #api #rest
#Ява #пружинный ботинок #API #остальное
Вопрос:
Объект запроса конечной точки имеет 5 свойств, и 2 из них являются обязательными. Но есть 2 определенных варианта использования, либо будут предоставлены только 2 из них, либо будут предоставлены все. т. е.: поле 1-поле 2-поле 5 не может быть предоставлено. Может быть вызвано исключение или может произойти сбой метода проверки.
Как эта необязательная зависимость может быть отражена в коде?
Дополнительный вопрос: во время вызова api контроллер заполняет значения объекта запроса с помощью методов контроллера или установщика (или как)?
Версия Springboot : 2.2.13.РЕЛИЗ
Версия Java : 1.8.0_232
Класс запроса, FooQuery.java
@NoArgsConstructor @AllArgsConstructor @RequiredArgsConstructor @Getter @Setter public class FooQuery { @NonNull @NotNull(message = "Field can not be null or empty") @NotEmpty(message = "Field can not be null or empty") @NotBlank(message = "Field can not be null or empty") private String field1; //Mandatory @NonNull @NotNull(message = "Field can not be null or empty") @NotEmpty(message = "Field can not be null or empty") @NotBlank(message = "Field can not be null or empty") private String field2; //Mandatory private String[] fields3; //Optional private String field4; //Optional private String field5; //Optional }
Класс контроллера, ControllerClass.java:
public class ControllerClass{ public FooResponse fooEndpoint(@Valid @RequestBody FooQuery params) throws Exception { return foo.doBar(params); } }