Проверка контроллера в Kotlin Spring Boot - PullRequest
1 голос
/ 21 октября 2019

У меня есть RestController с одной конечной точкой. Эта конечная точка принимает объект класса данных. Класс данных имеет 2 атрибута. Как убедиться, что эти атрибуты проверены?

Мой класс данных:

data class FormObject(val email: String, val age: Int)

И контроллер:

@PostMapping("submit")
fun submit(@RequestBody formObject: FormObject): FormObject {
    return formObject
}

Как мнеубедиться, что электронная почта является электронной почтой, а возраст не превышает 150? Спасибо,

1 Ответ

2 голосов
/ 21 октября 2019

Для этого вы можете использовать Bean Validation Framework.

1) Аннотируйте объект запроса как нуждающийся в проверке:

fun submit(@Valid @RequestBody formObject: FormObject): FormObject
           ^^^^^^

2) Аннотируйте поля вашего класса данных с соответствующими аннотациями проверки:

data class FormObject(
    @field:NotBlank 
    val email: String, 

    @field:Min(1) 
    @field:Max(150) 
    val age: Int
)

Примечаниечто вы должны применить аннотацию к field (не к параметру), иначе проверка не произойдет так, как мы хотим. Кроме того, если мы определим age как Int, он будет иметь значение по умолчанию (0), если вызывающий не отправляет его, поэтому я применил минимальную проверку для этого, чтобы компенсировать это (предполагая, что возраст 0 равенне в порядке, YMMV).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...