18.JSR303数据校验

以新增品牌接口为例

接口代码展示

添加校验注解

前端送的json对应BrandEntity,比如我们需要品牌的名称不能为空:

 NotBlank注解表示不允许为null为空为纯空格,还有很多其他注解,这里不一一举例

开启校验

测试效果

 

自定义错误返回

上面的postman返回的校验失败的结果并不是我们想要的,我们期望的是返回以下这种:

{"code":"400",message:"名称不允许为空"}

也是可以支持的:

 

 

 这就达到我们的期望结果了

特殊的校验怎么实现

内置的注解可能无法达到一些特殊的要求校验,可以用如下正则的方式实现:

分组校验

比如新增时候我们不需要传ID,但是修改的时候必须传ID使用ID做更新操作。

1.定义分组接口

 

 2.校验的参数的注解

 3.接口标注使用哪个分组校验

 再这里指定分组校验后智慧校验注解里加了这个分组的,别的分组或者未加任何分组的都不做校验。

 4.测试一下

自定义校验注解

有时候复杂的校验逻辑通过正则的方式不容易实现,我们可以自定义一个校验注解要做复杂逻辑的校验。

我们以showStatus字段为例,限制只能输入0或者1

1.定义注解的接口

 2.默认message

 3.注解实现的校验逻辑代码

 4.使用

5.自定义message

 

 

posted @ 2023-03-04 22:40  lucsa  阅读(22)  评论(0编辑  收藏  举报