我试图使用wiremock Standalone服务器实现POST REST调用的模拟.我面临这样的挑战,假设帖子正文包含一个“名称”字段及其值,应该在该POST调用的响应中返回相同的值.我的json文件如下所示:
{
"priority": 1,"request": {
"method": "POST","urlPath": "/primeSlots","bodyPatterns" : [ {
"matchesJsonPath" : "{ \"things\": [ { \"name\": \"794363\" }]
}"
} ]
},"response": {
"status": 200,"body": "{{$.things.name.value}}","transformers": ["response-template"]
}
}
所以,我需要获得值,即794363,但使用上述方法无法在post响应体中获取它.
我也试过这个:
{
"request": {
"method": "POST","urlPath": "/transform","bodyPatterns": [
{
"matchesJsonPath" : "$.things[?(@.name =~ /[0-9]+/i)]"
}
]
},"body": "{\"responseName\": \"
{{request.body.things.name.value}}\"}","headers": {
"Content-Type": "application/json"
},"transformers": ["body-transformer"]
}
}
所以我的问题是,即使我使用的regEx与请求中的任何数字相匹配,如何使用wiremock独立的json文件在响应中返回相同的数字?
谢谢.
最佳答案
不幸的是,wiremock的响应模板变换器目前还没有将请求体分解为Map,这对于你想要做的事情是必要的.请求正文只是一个字符串.
启用此功能的最简单方法可能是编写一个实现JSONPath的Handlebars帮助程序或其他一些查询JSON文档的机制,然后在初始化wiremock时将其与模板转换器一起注册.
在某些时候,我会编写把手助手来为XML和JSON做这种事情,但这不会有一段时间.
原文地址:https://www.jb51.cc/java/437388.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。