Bar*_*osz 4 rest spring kotlin spring-boot
我有一个带有一个端点的 RestController。该端点接受数据类的对象。数据类有 2 个属性。如何确保这些属性得到验证?
我的数据类:
data class FormObject(val email: String, val age: Int)
和控制器:
@PostMapping("submit")
fun submit(@RequestBody formObject: FormObject): FormObject {
return formObject
}
Run Code Online (Sandbox Code Playgroud)
如何确保电子邮件是电子邮件并且年龄不大于 150?谢谢,
您可以为此使用 Bean 验证框架。
1)将请求对象注释为需要验证:
fun submit(@Valid @RequestBody formObject: FormObject): FormObject
^^^^^^
Run Code Online (Sandbox Code Playgroud)
2) 使用适当的验证注释来注释数据类的字段:
data class FormObject(
@field:NotBlank
val email: String,
@field:Min(1)
@field:Max(150)
val age: Int
)
Run Code Online (Sandbox Code Playgroud)
请注意,您必须将注释应用于field(而不是参数),否则验证将不会以我们想要的方式发生。此外,如果我们定义age为 an Int,0如果调用者不发送它,它将有一个默认值 ( ),所以我对其应用了最小验证来抵消它(假设年龄 0 不合适,YMMV)。
| 归档时间: |
|
| 查看次数: |
2280 次 |
| 最近记录: |