问题描述
我正在尝试使用 request.pathSegments
在响应中呈现一些信息,而该占位符为空...
使用 2.26
wiremock 独立启动 cmd:
java -jar ./wiremock.jar --root-dir "/usr/share/wiremock" --verbose --local-response-templating
存根定义:
{
"mappings": [
{
"request": {
"method": "GET","urlPathPattern": "/v2/path/data/.*"
},"response": {
"status": 200,"headers": {
"Content-Type": "application/json"
},"bodyFileName": "responses/data.json","transformers": ["response-template"]
}
}
]
}
模板位于 __files/responses/data.json:
{
"data": [
{
"id": "{{request.pathSegments.[3]}}","type": "values"
},{
"id": "{{request.pathSegments.[3]}}","type": "values"
}
]
}
致电http://localhost:8000/v2/path/data/foo
预期:
{
"data": [
{
"id": "foo",{
"id": "foo","type": "values"
}
]
}
实际:
{
"data": [
{
"id": "",{
"id": "","type": "values"
}
]
}
我尝试在模板中使用 {{request.path}}
并且 IS 可以正确呈现。
如果有人能发现我遗漏了什么......
解决方法
尝试使用三把把手和 path
而不是 pathSegments
。
"data": [
{
"id": "{{{request.path.[3]}}}","type": "values"
},{
"id": "{{{request.path.[3]}}}","type": "values"
}
]
}
我发现关于这个的文档有些模糊,我通常默认为三倍,如果三倍不起作用,则尝试使用双倍。我也尽可能避免使用 pathSegments
。