#java #spring #spring-boot #validation #spring-validator
#java #spring #весенняя загрузка #проверка #spring-валидатор
Вопрос:
Я нашел этот пример, как проверить переменную пути: https://www.mkyong.com/spring-boot/spring-rest-validation-example /
@PostMapping(value = "/payment/{unique_transaction_id}")
public ResponseEntity<StringResponseDTO> handleWpfMessage(@PathVariable("unique_transaction_id") @Valid @Max(32) String unique_transaction_id) throws Exception {
Могу ли я добавить @Valid
дочерний элемент ограничения для строки @Max(32)
или я должен добавить @Validated
на уровне класса, как показано в руководстве?
Ответ №1:
Вы можете определить регулярное выражение для вашей переменной path
@PostMapping(value = "/payment/{unique_transaction_id:[a-zA-Z0-9]{0,32}}")
Комментарии:
1. Но должен ли я добавить @Valid на уровне класса?
2. Нет, не требуется,
@Valid
проверяет все ограничения, определенные в вашем классе POJO тела запроса.3. Есть ли другой способ применить ограничение [a-zA-Z0-9] с аннотациями?
4. Я не думаю (или я не знаю), что существует какая-либо аннотация для той же цели. Существуют другие способы, такие как проверка его в фильтре / перехватчике, но это не прямолинейно, как приведенное выше решение.
5. Это может быть усовершенствованием в spring для той же цели, добавляющим регулярное выражение поля в
@PathVariable
аннотации.