问题描述
主要思想是首先处理请求数据中的数据(解密、计算等),然后将一些结果值传递给json响应文件。我正在尝试在 WireMock 中创建一个响应定义转换器。映射文件看起来像这样:
"priority": 2,"request": {
"method": "GET","urlPattern": "/\\?id=(.*)"
},"response": {
"status": 200,"transformers": ["id-transformer","response-template"],"headers": {
"Content-Type": "application/json"
}
}
json 响应文件如下所示:
{
"value1": "{{ parameters.value1 }}","value2": "{{ parameters.value2 }}"
}
在 ResponseDefinitionTransformer 扩展类中,我从请求 url 中获取 id,处理它并将传递的值作为转换器参数:
public class IdResponseTransformer extends ResponseDefinitionTransformer {
private static final String NAME = "id-transformer";
@Override
public ResponseDefinition transform(
Request request,ResponseDefinition responseDefinition,FileSource files,Parameters parameters) {
var id = request.queryParameter("id").firstValue();
var value1 = //process id for getting value1
var value2 = //process id for getting value2
return ResponseDefinitionBuilder
.withBodyFile("response.json")
.withTransformerParameter("value1",value1)
.withTransformerParameter("value2",value2)
.build();
}
@Override
public String getName() {
return NAME;
}
@Override
public boolean applyGlobally() {
return false;
}
}
但 WireMock 返回一个带有相同 parameters.valueX 占位符且没有插入值的 json 响应文件:
{
"value1": "{{ parameters.value1 }}","value2": "{{ parameters.value2 }}"
}
我应该怎么做才能正确传递变压器参数?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)