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

Wiremock 2.33:如何从含点号键的请求中返回响应值?

Wiremock 2.33处理带点号键的JSONPath语法修正

问题根源

你遇到的500错误有两个核心原因:

  1. Helper名称错误:Wiremock响应模板中用于JSONPath提取的工具是jsonPath,而非你写的jsonbody,这是触发"找不到helper"报错的直接原因。
  2. JSONPath语法错误:访问包含点号的键时,必须对键名做特殊处理,否则解析器会把点号识别为层级分隔符,导致无法匹配目标字段。

正确的存根定义

以下是修正后的完整存根示例:

{
  "request": {
    "urlPath": "/path",
    "method": "ANY"
  },
  "response": {
    "body": "{{jsonPath request.body '$.details.\"full.name\"'}}",
    "transformers": ["response-template"]
  }
}

关键语法说明

  • Helper名称修正:必须使用jsonPath(注意首字母大写)调用JSONPath提取功能,同时要确保启用response-template转换器,否则模板语法不会生效。
  • 带点号键的JSONPath写法:
    • 方式1:用双引号包裹键名,在JSON字符串中需转义双引号,表达式为$.details."full.name"
    • 方式2:用方括号+单引号的形式,无需转义,表达式为$['details']['full.name'],对应存根写法:
      "body": "{{jsonPath request.body '$[\'details\'][\'full.name\']'}}"
      

验证要点

确保Wiremock实例已启用响应模板功能:要么启动时添加--enable-response-templating参数,要么在存根中明确配置"transformers": ["response-template"],否则模板表达式不会被解析执行。

内容的提问来源于stack exchange,提问作者Deep

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 22:24:27