java - Wiremock:无法根据从 json 正文中查找所需参数来设置 stub

标签 java json api wiremock

标题可能看起来有点令人困惑。在 Mocklab 中,我想做的是创建一个 stub ,它将根据该请求的 json 主体上的特定参数或一组参数给我一个特定的响应。

假设请求正文如下所示:

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

}

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

最佳答案

我将描述的大部分信息都取自 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

关于java - Wiremock:无法根据从 json 正文中查找所需参数来设置 stub ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59453733/

相关文章:

json - 使用 DeSerializeFn 在服务堆栈中自定义序列化

javascript - 未捕获的类型错误 : Converting circular structure to JSON

json - 将 JSON 字符串列拆分为多个没有架构的列 - PySpark

java - 策略模式的真实示例

java.lang.NoClassDefFoundError : Could not initialize class sun. 字体.SunFontManager

ios - 数据格式不正确(数据交换),因此无法读取

java - 我无法使用mvvm在两个存储库之间共享变量

jquery - Laravel API,请求 header 字段预检响应中的 Access-Control-Allow-Headers 不允许授权

java - 使用元字符正则表达式模式执行多个字符串替换

java - 使用信号量