我有一个带有一个端点的RestController。该端点接受数据类的对象。数据类具有2个属性。如何确保这些属性经过验证?
我的数据类:
data class FormObject(val email: String, val age: Int)
和控制器:
@PostMapping("submit")
fun submit(@RequestBody formObject: FormObject): FormObject {
return formObject
}
如何确定电子邮件是电子邮件并且年龄不大于150? 谢谢,
答案 0 :(得分:2)
您可以为此使用Bean验证框架。
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)。