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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!