当前位置: 首页 > news >正文

JSON Schema 校验是什么?面试时怎么说?

JSON Schema 校验,其实就是 对接口返回的数据结构做自动化校验,确保它符合预期格式。

比如下单接口返回的数据是这样的:

{
"orderId": 12345,
"status": "paid",
"amount": 58.5,
"items": [
{
"productId": 1001,
"name": "苹果",
"quantity": 2
}
]
}

我们用 JSON Schema 定义接口的“标准格式”,比如:

{
"type": "object",
"properties": {
"orderId": { "type": "integer" },
"status": { "type": "string" },
"amount": { "type": "number" },
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"productId": { "type": "integer" },
"name": { "type": "string" },
"quantity": { "type": "integer" }
},
"required": ["productId", "name", "quantity"]
}
}
},
"required": ["orderId", "status", "amount", "items"]
}

然后用工具(比如 Python 的 jsonschema 库)去校验:

orderId 必须是整数

status 必须是字符串

items 必须是数组,数组里的元素必须包含 productId、name、quantity

作用:

保证接口返回格式正确:字段名、类型、是否必填。

防止上线后出错:比如后端改了字段类型,前端/测试能第一时间发现。

配合自动化:写一次 Schema,就能自动化校验所有返回。

面试回答模板

如果面试官问 “JSON Schema 校验你怎么用的?”
你可以这样说:

👉 “我们在接口测试里引入了 JSON Schema 校验,比如订单接口返回的字段结构,我会用 jsonschema 库定义标准,然后在自动化测试里比对接口实际返回和 Schema 是否一致。这样可以快速发现字段缺失、类型不符的问题,保证接口返回的稳定性。”

代码举例:写一段 Python 示例代码,用 jsonschema 来校验接口返回。

示例代码:校验订单接口返回

import requests
from jsonschema import validate

  1. 定义接口返回的 JSON Schema
    order_schema = {
    "type": "object",
    "properties": {
    "orderId": {"type": "integer"},
    "status": {"type": "string"},
    "amount": {"type": "number"},
    "items": {
    "type": "array",
    "items": {
    "type": "object",
    "properties": {
    "productId": {"type": "integer"},
    "name": {"type": "string"},
    "quantity": {"type": "integer"}
    },
    "required": ["productId", "name", "quantity"]
    }
    }
    },
    "required": ["orderId", "status", "amount", "items"]
    }

  2. 调用接口(示例 URL)
    url = "http://api.demo.com/order/detail?orderId=12345"
    response = requests.get(url)
    data = response.json()

  3. 用 Schema 校验返回结果
    try:
    validate(instance=data, schema=order_schema)
    print("✅ 接口返回符合预期 Schema")
    except Exception as e:
    print("❌ 接口返回不符合 Schema:", e)

在面试时还可以说:

“我会在接口自动化里加 Schema 校验,保证返回结构和字段类型稳定。”

“比如订单接口返回的 orderId 必须是整型,items 必须是数组,如果后端改了类型,测试用例能第一时间发现。”

“这比单纯的断言字段值更健壮,能防止上线后出现前端解析报错。”

这样在面试时你就可以加一句:
👉 “除了常规的断言,我还会用 jsonschema 库做接口返回的 Schema 校验,保证接口结构稳定。”

http://www.sczhlp.com/news/107394/

相关文章:

  • 【征文启动】IvorySQL PostgreSQL 迁移实战经验征集:分享你的技术沉淀,赢取专属好礼!
  • 律师的网站模板马鞍山集团网站设计
  • 工会教工之家网站建设好的网站怎么设计
  • 张家界建设局网站电话号码自己做电视视频网站吗
  • 正规免费发布信息网站那些网站使用vue做的
  • 珠宝网站开发目的艺术毕业设计作品网站
  • 易企网站建设轻创优选地推app
  • 备案加在wordpress天津百度关键词seo
  • 做旅游平台网站找哪家好廊坊网页模板建站
  • iis端口相同不同网站建设互联网公司网站建设ppt
  • h5商城网站 源代码临沂h5建站
  • 自己可以做一个网站吗石油网页设计与网站建设
  • 无锡网站建设选众鼎国内免费ip地址
  • 网站查询ip晋江论坛匿名区
  • 柯桥做网站有哪些公司中企动力总部在哪里
  • 自然资源网站建设方案移动办公oa手机版
  • 一般做网站是在什么网站找素材网站开发和设计实训
  • 一个网站上能不能放两个域名 两个备案号站外营销有哪几种主流方式
  • 建一个自己的网站价格网站建设找邓金平
  • 可以搜索附近手机的软件关键词优化推广策略
  • pyAutoGUI 模块主要效果介绍-(2)键盘功能
  • 网站开发第三方支付石家庄住房建设局网站
  • 做网站如何防止被黑潍坊公司注册网站
  • 网站 工信部备案 收回wordpress登陆名
  • 新手学做网站学哪些知识wordpress显示英文版
  • 江苏专业做网站扶贫网站建设的意义
  • 凡科免费建站简单的网站开发流程图
  • (简记)时间复杂度分析 $\Omicron,\Theta,\Omega$ 的区别
  • Java的运算符
  • 2025年最强API安全解决方案:以智能风险监测重塑企业数据防护体系