【问题标题】:Wiremock not templating request path segmentsWiremock 没有模板化请求路径段
【发布时间】:2021-06-02 21:24:18
【问题描述】:

我正在尝试使用request.pathSegments 在响应中呈现一些信息,而占位符为空...

使用 2.26

Wiremock 独立启动 cmd:

java -jar ./wiremock.jar --root-dir "/usr/share/wiremock" --verbose --local-response-template

存根定义:

{
  "mappings": [
    {
      "request": {
        "method": "GET",
        "urlPathPattern": "/v2/path/data/.*"
      },
      "response": {
        "status": 200,
        "headers": {
          "Content-Type": "application/json"
        },
        "bodyFileName": "responses/data.json",
        "transformers": ["response-template"]
      }
    }
  ]
}

模板位于 __files/responses/data.json:

{
  "data": [
    {
      "id": "{{request.pathSegments.[3]}}",
      "type": "values"
    },
    {
      "id": "{{request.pathSegments.[3]}}",
      "type": "values"
    }
  ]
}

致电http://localhost:8000/v2/path/data/foo

预期:

{
  "data": [
    {
      "id": "foo",
      "type": "values"
    },
    {
      "id": "foo",
      "type": "values"
    }
  ]
}

实际:

{
  "data": [
    {
      "id": "",
      "type": "values"
    },
    {
      "id": "",
      "type": "values"
    }
  ]
}

我已尝试在模板中使用{{request.path}},并且 IS 呈现正确。

如果有人能发现我错过了什么......

【问题讨论】:

    标签: wiremock wiremock-standalone handlebars.java


    【解决方案1】:

    尝试使用三把车把和path,而不是pathSegments。

    
      "data": [
        {
          "id": "{{{request.path.[3]}}}",
          "type": "values"
        },
        {
          "id": "{{{request.path.[3]}}}",
          "type": "values"
        }
      ]
    }
    

    我发现这方面的文档有些模糊,我通常默认为三倍,如果三倍不起作用,则尝试双倍。我也尽可能避免使用pathSegments。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-25
      • 2023-04-10
      相关资源
      最近更新 更多