You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 14:15:14