【发布时间】:2023-02-15 09:05:17
【问题描述】:
背景
我正在使用wiremock-jre8-standalone-2.35.0.jar
如果传入请求的数组包含任何值,我希望它返回 200 响应:
{
"field1": "data1",
"array": [
{...},
{...},
...
],
"field2": "data2",
"field3": "data3",
"field4": "data4",
"field5": "data5"
}
如果传入请求的数组为空,我希望它返回 400 响应:
{
"field1": "data1",
"array": [],
"field2": "data2",
"field3": "data3",
"field4": "data4",
"field5": "data5"
}
Wiremock 应将传入请求与来自以下代码的 "request": {...} 匹配:
{
"id": "...",
"request": {
"urlPattern": "...",
"method": "POST",
"headers": {...},
"bodyPatterns": [
{
"matchesJsonPath": "$[?(@.length < 1)]"
}
]
}
},
"response": {
"status": 400,
"bodyFileName": "...",
"headers": {...}
},
"uuid": "..."
}
问题
Wiremock 在 bodyPatterns 数组中拒绝我的 JSONPath 表达式:
[{"matchesJsonPath":"$[?(@.length < 1)]"}] is not a valid match operation
然而,根据https://jsonpath.com/,该表达式似乎是有效的:
JSONPath
---
$[?(@.length < 1)]
Inputs
---
{
"field1": "data1",
"array": [],
"field2": "data2",
"field3": "data3",
"field4": "data4",
"field5": "data5"
}
Evaluation Results
---
[
[]
]
...是什么赋予了?
【问题讨论】:
标签: arrays jsonpath wiremock-standalone