0

我正在尝试使用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}}在模板中使用并且正确呈现。

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

4

1 回答 1

1

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


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

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

于 2021-06-02T13:24:18.943 回答