Postman Raw 参数 JSON Schema 配置

在Postman的Raw模式下,通过JSON Schema对请求体的JSON参数进行校验,需在Tests脚本中编写验证逻辑。以下为典型配置方法:

const schema = {
  "type": "object",
  "properties": {
    "username": { "type": "string", "minLength": 3 },
    "age": { "type": "integer", "minimum": 18 },
    "email": { "type": "string", "format": "email" }
  },
  "required": ["username", "email"]
};

const jsonData = pm.request.body.raw;
const valid = tv4.validate(JSON.parse(jsonData), schema);

pm.test("Schema validation", function() {
  if (!valid) {
    pm.expect.fail(tv4.error.message);
  }
});

后端数据验证案例(Node.js + Express)

后端需同步实现数据验证以确保数据完整性。使用express-validator的示例:

const { body, validationResult } = require('express-validator');

app.post('/api/user', [
  body('username').isString().isLength({ min: 3 }),
  body('age').isInt({ min: 18 }).optional(),
  body('email').isEmail()
], (req, res) => {
  const errors = validationResult(req);
  if (!errors.isEmpty()) {
    return res.status(400).json({ errors: errors.array() });
  }
  // 业务逻辑处理
});

前后端校验协同要点

前端Postman校验用于开发阶段快速发现问题,后端校验是数据安全的最终防线。建议保持两者的校验规则一致。

JSON Schema支持的高级特性包括正则校验、枚举值、条件校验等。例如对密码复杂度的校验:

"password": {
  "type": "string",
  "pattern": "^(?=.*[A-Z])(?=.*\\d).{8,}$"
}

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐