如何将参数添加到 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
的实现,它读取配置值并执行字符串替换。我怀疑这只是几行代码。
我按照与此处找到的方法类似的方法设法解决了这个问题:https://groups.google.com/forum/#!topic/wiremock-user/QZyrzhvReZE
我基本上创建了一个扩展 ResponseTransformer
的新 class,然后覆盖了 transform
方法。
我正在使用 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
的实现,它读取配置值并执行字符串替换。我怀疑这只是几行代码。
我按照与此处找到的方法类似的方法设法解决了这个问题:https://groups.google.com/forum/#!topic/wiremock-user/QZyrzhvReZE
我基本上创建了一个扩展 ResponseTransformer
的新 class,然后覆盖了 transform
方法。