Kotlin Spring Boot中的控制器验证

巴托斯:

我有一个带有一个端点的RestController。该端点接受数据类的对象。数据类具有2个属性。如何确保这些属性经过验证?

我的数据类:

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

和控制器:

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

如何确定电子邮件是电子邮件且年龄不大于150?谢谢,

托德:

您可以为此使用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(而不是参数),否则验证将不会按照我们想要的方式进行。另外,如果我们将其定义ageInt0则在调用方未发送默认值(的情况下,它将具有默认值(),因此我对此应用了最小验证以抵消该错误(假设年龄0不好,YMMV)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章