Я хочу, чтобы мой REST API генерировал исключение всякий раз, когда существует и несоответствие типов параметров. Ниже приведен мой объект запроса.
public class MyReqDto {
@NotNull
@Pattern(regexp = "[^a-zA-Z0-9]", message = "Invalid characters found in subscriberType")
private String subscriberType;
@NotNull
@Pattern(regexp = "^[a-zA-Z0-9]", message = "Invalid characters found in caseId")
private String caseId;
В указанном выше случае исключение должно создаваться всякий раз, когда запрос нарушает это строковое требование (предоставление целочисленного значения для subscriberType). Также мне нужно проверить их по недопустимым символам, таким как *, -, <,> et c. Для этого я использовал аннотацию @Pattern.
Мой контроллер выглядит следующим образом.
@Controller
public class MyController {
@RequestMapping(value = "/my-controller/traceId/{Trace_ID}", method = RequestMethod.POST, produces =
"application/json")
public ResponseEntity<Object> startWork(@PathVariable Optional<String> Trace_ID,
@Valid @RequestBody MyReqDto myReqDto)
throws Exception {
Я использую аннотацию @Valid и включил зависимость maven для hibernate-validator
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.0.2.GA</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
Но проблема в том, что он не проверяет мой ввод и не принимает целочисленные значения для subscriberType и caseId.
Любая помощь по этому вопросу высоко ценится.