如何在Wiremock中使用响应模板使用请求中的数据设置响应主体值?

时间:2018-06-28 09:58:05

标签: wiremock

我具有请求响应的JSON定义。请求主体为文本/纯文本。

{
  "request": {
    "method": "POST",
    "url": "/users",
    "bodyPatterns": [
      {
        "equalTo": "Name Bob Age 30"
      }
    ]

  },
  "response": {
    "status": 200,
    "body": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><UsersResponse><Name>Bob</Name><Age>30</Age></UsersResponse>",
    "transformers": ["response-template"],
    "headers": {
      "Content-Type": "text/xml"
    }
  }
}

我希望不对'Bob'和'30'进行硬编码,而是将其作为请求和响应的变量。 因此,如果请求'Mark''20'到达,我想返回

"body": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><UsersResponse><Name>Mark</Name><Age>20</Age></UsersResponse>"

如何实现?

1 个答案:

答案 0 :(得分:1)

WireMock和WireMock.Net都支持响应模板

文档:

但是,这仅限于简单的模板(有关详细信息,请阅读文档),无法使用JSON映射界面以复杂的方式定义自定义代码或提取数据。

对于WireMock.Net,您可以使用C#对其进行硬编码,另一个示例如下所示:

GET /repos/:owner/:repo/contents/:path