加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Wiremock Stand alone – 如何使用请求数据操作响应

发布时间:2020-12-15 01:07:24 所属栏目:Java 来源:网络整理
导读:我试图使用Wiremock Standalone服务器实现POST REST调用的模拟.我面临这样的挑战,假设帖子正文包含一个“名称”字段及其值,应该在该POST调用的响应中返回相同的值.我的json文件如下所示: {"priority": 1,"request": { "method": "POST","urlPath": "/primeS

我试图使用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做这种事情,但这不会有一段时间.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读