Я создаю API-интерфейс REST для микросервиса Spring-Boot, который ожидает @RequestParam
типа List<String>
. Как я могу проверить, что список содержит минимальное и максимальное количество значений?
До сих пор я пытался использовать @Size(min=1, max=2)
, который также должен поддерживать коллекции (javax.validation.constraints.Size
).
Я также попытался добавить @Valid
и параметр BindingResult
вместе с аннотацией @Size
, но безуспешно.
Я бы предпочел использовать решение, аналогичное первому примеру, используя @Size(min=1, max=2)
, которое является более компактным и аккуратным. Это для Spring-Boot 2.1.2.RELEASE.
@RestController
public class MyApi {
@GetMapping(value = "/myApi", produces = { APPLICATION_JSON_VALUE })
public ResponseEntity<List<MyObject>> getSomething(@Valid @RequestParam(value = "programEndTime", required = false) @Size(min = 1, max = 2) List<String> programEndTime, BindingResult result) {
if (result.hasErrors()) {
System.out.println("Error");
} else {
System.out.println("OK");
}
}
}
Я ожидаю, что линия System.out.println("Error")
будет достигнута, но она фактически пропущена.