如何将参数添加到 wiremock 中的存根响应主体?

How can I add parameter to a stubbed response body in wiremock?

我正在使用 Wiremock 来存根依赖服务的响应。我需要使用真实数据,因为我的系统需要这些数据才能正常工作。我有一个 json,其中包含 API 调用的存根响应。它看起来像这样:

{
  "request": {
    "method": "GET",
    "urlPattern": "/path"
  },
  "response": {
    "status": 200,
    "jsonBody": [
      {
        "secret": "secretInfoHere"
      }
    ],
    "headers": {
      "Content-Type": "application/json"
    }
  }
}

我想知道是否可以从 JSON 中隐藏 secret 值并在运行时插入该信息来自示例的环境变量。

理想情况下,秘密应该是这样的:

"secret": ${SECRET_VALUE}

"secret": ""

我阅读了这一部分,但它并没有像我想象的那样有用:http://wiremock.org/docs/response-templating/

响应模板在其模型中不使用 environment/system 变量,因此很遗憾,您将无法在这种情况下使用它。

你现在最好的选择是编写一个 ResponseDefinitionTransformer 的实现,它读取配置值并执行字符串替换。我怀疑这只是几行代码。

文档在这里:http://wiremock.org/docs/extending-wiremock/

我按照与此处找到的方法类似的方法设法解决了这个问题:https://groups.google.com/forum/#!topic/wiremock-user/QZyrzhvReZE

我基本上创建了一个扩展 ResponseTransformer 的新 class,然后覆盖了 transform 方法。