【发布时间】:2017-10-13 13:32:36
【问题描述】:
我正在使用 Wiremock 存根移动客户端发出的一些 API 调用。
努力从请求中获取模板文件名。
任何人都可以确认这是否应该与 Wiremock 独立 pls 一起使用?
"response": { "status": 200, "bodyFileName": "Account-{{jsonPath request.body '$.user.identity'}}.json”}
我可以正常返回静态文件,但似乎 bodyFileName 不喜欢模板化。
例子:
我使用以下 Json 配置 wm:
{
"request": {
"method" : "GET",
"url": "/users/D8428899330"
},
"response": {
"status": 200,
"bodyFileName": "user-{{request.path.[1]}}.json"
}
}
然后当我尝试 url,http://localhost:9696/users/D8428899330 我得到以下错误,
HTTP 错误:500 访问 /users/D8428899330 时出现问题。原因:
java.lang.RuntimeException: java.io.FileNotFoundException: /Users/iainframe/Documents/__files/user-{{request.path.[1]}}.json(否 这样的文件或目录)
应该指出文件user-D8428899330.json resides 位于正确的位置,因为我已经对其进行了硬编码,并且它可以正常返回。启动WireMock的命令是:
java -jar ~/Documents/wm.jar --port 9696 --global-response-templating --verbose --root-dir /Users/iainframe/Documents/
【问题讨论】:
-
您在启动 WireMock 进程时是否启用了模板?
-
是的,我运行了这个命令行:java -jar ~/Documents/wm.jar --port 9696 --global-response-templating --verbose --root-dir /Users/iainframe/文件/
-
你能更详细地描述这个问题吗?您是否看到错误消息?
-
错误消息是问题中突出显示的 HTTP 500 错误。这在
wiremock-standalone-2.14.0版本中仍然存在。 -
我遇到了同样的问题,发现 {{request.path.[1]}} 不会映射到 bodyFileName 中。这意味着您必须创建自定义 Transformer 才能做到这一点。如果您创建一个名为“user-{{request.path.[1]}}.json”的文件,这将起作用,但您的请求中没有动态部分:(
标签: wiremock