【问题标题】:Wiremock Request Templating for JSON Payload with multiple allowed keys, but same response具有多个允许键但响应相同的 JSON 有效负载的 Wiremock 请求模板
【发布时间】:2021-05-03 14:05:32
【问题描述】:

试图模拟一个 API 端点,该端点允许具有 2 个可能的有效负载但响应相同的请求:

请求选项 1

{
  "key1": "value1"
}

请求选项 2

{
  "key2": "value2"
}

基于Request Templating documentation,我看到有一个选项可以为matchesJsonPath 定义一些正则表达式。 但是,我无法弄清楚如何提供允许key1key2 的配置。

这是我尝试过的,但它似乎不起作用:

{
  // ... other configs
  "request": {
    "bodyPatterns": [
      {
        "matchesJsonPath": "$.(key1|key2)"
      }
    ]
  }
}

是否可以提供 1 个支持两种负载的定义,还是我必须创建 2 个存根?

注意:我使用的是standalone Wiremock Docker image,因此使用 Java 进行更复杂处理的选项有限。

【问题讨论】:

    标签: wiremock wiremock-standalone


    【解决方案1】:

    您的 JsonPath 匹配器格式不正确。您需要应用过滤器/脚本(由?() 表示)。有关 JsonPath 匹配器如何工作的更多信息can be found here.

    以下是正确格式化的 JsonPath 匹配器的样子:

    {
      "matchesJsonPath": "$[?(@.key1 || @.key2)]"
    }
    

    如果您需要 key1key2 具有特定值,则如下所示:

    {
      "matchesJsonPath": "$[?(@.key1 == 'value1' || @.key2 == 'value2')]"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2017-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多