Wiremock:无法根据从json正文中找到所需的参数来设置存根

问题描述 投票:0回答:1

标题可能看起来有些混乱。我想在Mocklab中做的是创建一个存根,该存根将基于该请求的json主体上的特定参数或一组参数为我提供一定的响应。

假设请求的主体如下:

{
 "A":{
     "B":{
         "key":"value",
          "key":"value" },
      "C":{
          "key":"value",
          "key":"value"
},

}

我希望它遍历整个主体,并在C中查找键值对,如果找到该键对,则给我设定的响应。身体的其余部分是可选的。

java json api wiremock
1个回答
0
投票

我将描述的大多数信息仅来自here

我认为您可以执行以下操作:

givenThat(post(urlEqualTo("/foo")).withRequestBody(matchingJsonPath("$.A.B.C.key", equalTo("value")))

如果需要在多个键:值对上进行匹配,则可以添加其他withRequestBody

givenThat(post(urlEqualTo("/foo")).withRequestBody(matchingJsonPath("$.A.B.C.key2", equalTo("value"))).withRequestBody(matchingJsonPath("$.A.B.C.key2, equalTo("value")))

如果您的逻辑开始变得有些棘手,我建议您考虑创建一个custom matcher

© www.soinside.com 2019 - 2024. All rights reserved.