数据校验
Validation
中级通用数据校验(Validation)是按预先确定的规则,检查输入或传入的数据能否被当前操作接受。它能在数据进入后续流程前发现缺失、格式错误或不合理的值,例如阻止订单数量为负数。
你可能会说:「帮我检查用户提交的内容,不合要求时说明哪里错了,别把错误数据存进去。」
动手看看订单数量校验
确认采购数量商品:A4 复印纸 · 每箱 5 包
数量
-3
数量必须大于 0
提交订单
订单数量
切换订单数量,看看输入框下方的提示和提交按钮怎样变化;也可以悬停输入框,或用 Tab 键聚焦它。校验关注的是这个值能不能进入下单流程。
负数有值,但不符合「数量必须大于 0」的规则。红色边框指出问题位置,提示说明原因,提交仍被拦住。
要点数据校验要检查什么,放在哪里?
- 1
先把可接受的条件说清楚
你得先和 AI 讲清字段规则:哪些必填、允许什么类型和值、字段之间有什么关系。比如预约人数是整数且至少为 1;有了明确条件,才谈得上判断数据是否有效。
- 2
前端提示和后端把关各有作用
前端校验能让你填表时及时发现问题,但请求也可能绕过页面直接发给接口。所以关键规则还要由后端检查,避免错误数据因为换了入口就进入数据库。
- 3
失败时告诉对方怎么修正
校验失败不只是拦住提交。我们还要指出哪个字段出了什么问题,比如“结束时间不能早于开始时间”。这样用户能修改,调用接口的程序也能据此处理错误。
容易混淆的地方
数据类型只说明一个值是数字、文字还是其他类型;数据校验还会判断它是否符合当前业务规则,比如数字 0 虽然类型正确,却不能作为购买数量。数据清洗则偏向修整已有数据;校验关注的是当前数据能否被接受,不能把擅自改值当成校验成功。
什么时候用
适合用
- 做注册表单时,检查必填项、邮箱格式和密码长度,让用户能定位并修改输入错误。
- 做创建订单的接口时,在写入数据库前检查商品数量和收货信息,拦住不符合规则的请求。
- 让 AI 工具接收结构化参数时,检查必需字段和值的范围,避免工具拿着无效参数继续执行。
不适合用
- 只是展示数据库里已有的文章列表,没有接收新数据;这时先考虑排版和空状态,而不是加提交校验。
- 担心用户重复点击付款导致两笔订单;这不是值是否有效的问题,改用幂等机制处理重复请求。
- 想判断用户有没有权限查看某份文件;这要做权限控制,字段填得正确也不代表用户可以访问。
练一练选一个答案,看看解释
你在做预约接口:页面已限制人数只能填正整数,但有人绕过页面,直接向接口发送人数为 -2 的请求。你会怎么处理?
让 AI 帮你做复制给 AI Agent 直接用
请为预约表单和创建预约的接口加入数据校验:人数必须是正整数,结束时间晚于开始时间。前端指出具体错误字段,后端在写入前独立校验并拒绝无效请求;补上有效与无效输入的测试用例。