#spring #validation #spring-restcontroller
#весна #проверка #spring-restcontroller
Вопрос:
Я хочу проверить параметры моего метода GET. Я добавил эту зависимость:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
Я написал этот контроллер:
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.Min;
@Validated
@RestController
public class TestController {
@GetMapping(value = "/test")
public String getTest(@Min(value = 3, message = "min 3")
@RequestParam("hz") String hz,
@RequestParam("hz1") String hz1) {
return "test";
}
}
Я добавил конфигурацию:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.validation.beanvalidation.MethodValidationPostProcessor;
@Configuration
public class Config {
@Bean
public MethodValidationPostProcessor methodValidationPostProcessor() {
return new MethodValidationPostProcessor();
}
}
запрос работает нормально! Почему?
http://localhost:8088/test?hz=12amp;hz1=123
Комментарии:
1. Вы можете выполнить проверку внутри своего сервиса, это более подходит
2. Нет, чем больше логики мы сбрасываем внутри сервисов, тем больше она становится подверженной ошибкам, в то время как простая логика проверки, если отбросить ее из самого контроллера, у нас будет чистый и минимальный код на уровне сервиса!
3. не могли бы вы показать ошибку?
4. @ silentsudo какая ошибка? Мой вопрос был об отсутствии ошибки. Я ожидал любой ошибки проверки. Я думаю, что решил эту проблему, и я добавлю ответ позже