Mockoon 6.1.0 JSON请求体规则配置异常:始终返回200求助
Mockoon根据requestId返回对应响应的解决方案
问题根源
- JSON配置无效:你提供的配置里同一个对象重复定义了
rules键,JSON规范不允许对象存在重复键,解析时后一个rules会覆盖前一个,导致规则完全失效。 - GET请求带请求体的兼容性问题:HTTP规范中GET请求本不应携带请求体,Mockoon对这种非常规场景的解析支持不佳,大概率无法正确读取请求体里的
requestId值。 - 响应优先级问题:当规则失效时,Mockoon会返回响应列表中的第一个响应,这就是你始终拿到200响应的直接原因。
修复步骤
1. 修正配置结构
每个响应必须是独立对象,各自拥有专属的rules字段,正确配置示例如下:
{ "routes": [ { "method": "POST", "path": "/your-api-path", "responses": [ { "statusCode": 400, "rules": [ { "target": "body", "modifier": "$.requestId", "value": 400, "invert": false, "operator": "equals" } ] }, { "statusCode": 200, "rules": [ { "target": "body", "modifier": "$.requestId", "value": 200, "invert": false, "operator": "equals" } ] } ] } ] }
2. 将请求方法改为POST
直接在Postman里把请求方法从GET换成POST,Mockoon对应路由的方法也同步改为POST——这是解决请求体解析问题的关键,避免因违反HTTP规范导致的工具兼容性问题。
3. 调整响应顺序与规则类型
- 在Mockoon界面中,将返回400的响应排在返回200的响应前面(若规则都不匹配,会返回列表第一个响应,但规则匹配时会触发对应响应)。
- 确保规则中的
value为数值类型(不要加引号),与请求体里requestId的类型保持一致,Mockoon的equals操作符会严格匹配数据类型。
验证流程
重启Mockoon后,在Postman中发送POST请求:
- 携带请求体
{"requestId":200},应返回200状态码 - 携带请求体
{"requestId":400},应返回400状态码
内容的提问来源于stack exchange,提问作者Betlista
相关产品推荐
相关产品推荐

