跳到正文

数据校验

Validation

中级通用

数据校验(Validation)是按预先确定的规则,检查输入或传入的数据能否被当前操作接受。它能在数据进入后续流程前发现缺失、格式错误或不合理的值,例如阻止订单数量为负数。

你可能会说:「帮我检查用户提交的内容,不合要求时说明哪里错了,别把错误数据存进去。」

读之前建议先了解

动手看看

确认采购数量商品:A4 复印纸 · 每箱 5 包
数量
-3
请输入订单数量
数量必须大于 0
校验通过,可以提交订单
提交订单
订单数量

切换订单数量,看看输入框下方的提示和提交按钮怎样变化;也可以悬停输入框,或用 Tab 键聚焦它。校验关注的是这个值能不能进入下单流程。

负数有值,但不符合「数量必须大于 0」的规则。红色边框指出问题位置,提示说明原因,提交仍被拦住。

要点

  1. 1

    先把可接受的条件说清楚

    你得先和 AI 讲清字段规则:哪些必填、允许什么类型和值、字段之间有什么关系。比如预约人数是整数且至少为 1;有了明确条件,才谈得上判断数据是否有效。

  2. 2

    前端提示和后端把关各有作用

    前端校验能让你填表时及时发现问题,但请求也可能绕过页面直接发给接口。所以关键规则还要由后端检查,避免错误数据因为换了入口就进入数据库。

  3. 3

    失败时告诉对方怎么修正

    校验失败不只是拦住提交。我们还要指出哪个字段出了什么问题,比如“结束时间不能早于开始时间”。这样用户能修改,调用接口的程序也能据此处理错误。

容易混淆的地方

数据类型只说明一个值是数字、文字还是其他类型;数据校验还会判断它是否符合当前业务规则,比如数字 0 虽然类型正确,却不能作为购买数量。数据清洗则偏向修整已有数据;校验关注的是当前数据能否被接受,不能把擅自改值当成校验成功。

什么时候用

适合用

  • 做注册表单时,检查必填项、邮箱格式和密码长度,让用户能定位并修改输入错误。
  • 做创建订单的接口时,在写入数据库前检查商品数量和收货信息,拦住不符合规则的请求。
  • 让 AI 工具接收结构化参数时,检查必需字段和值的范围,避免工具拿着无效参数继续执行。

不适合用

  • 只是展示数据库里已有的文章列表,没有接收新数据;这时先考虑排版和空状态,而不是加提交校验。
  • 担心用户重复点击付款导致两笔订单;这不是值是否有效的问题,改用幂等机制处理重复请求。
  • 想判断用户有没有权限查看某份文件;这要做权限控制,字段填得正确也不代表用户可以访问。

练一练

你在做预约接口:页面已限制人数只能填正整数,但有人绕过页面,直接向接口发送人数为 -2 的请求。你会怎么处理?

让 AI 帮你做

请为预约表单和创建预约的接口加入数据校验:人数必须是正整数,结束时间晚于开始时间。前端指出具体错误字段,后端在写入前独立校验并拒绝无效请求;补上有效与无效输入的测试用例。

接下来学什么