Schema 数据校验
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/tkpn2026756 到当前 AI 助手中。
技能介绍
解决数据“带病入库”的痛点
在处理客户 JSON 导入或接口载荷自检时,最让人头疼的莫过于数据里藏着格式错误却直到入库或下游消费时才暴露出来。这种“带病入库”往往会导致后续排查困难,甚至引发脏数据蔓延。本技能旨在在数据落盘或提交前,建立一道坚固的本地校验防线。
基于 AJV 的纯本地校验机制
技能底层依赖 AJV(推荐 Ajv2020 或项目既有大版本)与 JSON Schema 进行校验。它的核心逻辑非常纯粹:Schema 与数据均为纯 JSON,不夹杂任何额外的业务逻辑代码。
当校验失败时,它不会抛出难以阅读的英文堆栈,而是返回结构化的 errors[] 列表,包含明确的错误路径与中文信息。为了提升开发体验,默认开启 allErrors: true,确保一次校验就能列出所有潜在问题,而不是修一个报错再等下一个。错误文案已做好本地化映射,并建议在 UI 中将错误列表贴近对应字段展示。
边界与硬约束
虽然校验能力灵活,但必须遵守几项硬约束以保证安全性与稳定性:
- 完全离线:严禁发起任何网络请求。若 Schema 中使用了
$ref引用远程地址,默认禁用或必须给出明确警告。 - 业务解耦:内置了如必填
name、手机号正则、枚举阶段等常见规则,但这只是示例,实际业务中应替换为自己的 Schema。 - 自测要求:在正式接入前,需通过自测验证(如确认缺失
name或错误手机号会失败,合法对象正常通过)。
使用场景
- 在导入客户资料 JSON 文件前,需要提前拦截缺失必填姓名或手机号格式错误的脏数据,避免写入数据库。
- 编写动态表单提交逻辑时,需在数据发给后端前用本地 Schema 校验结构,并给用户展示具体的中文字段错误提示。
- 接收第三方接口返回的 JSON 载荷时,需在本地快速自检字段类型和枚举值是否合规,防止异常数据进入后续处理流程。
适合人员
- 负责开发表单提交模块的前端工程师,需要在用户点击提交时即时获取字段格式错误的中文提示。
- 处理大量外部数据导入的后端开发者,希望在数据落库前用脚本拦截不符合 JSON Schema 规范的脏数据。
- 搭建自动化数据清洗流水线的数据工程师,需要一套纯本地运行的校验工具来过滤接口返回的异常载荷。