问题描述
我是 WebClient 的新手。我想使用一个休息服务并替换一些值并返回结果。
这是我从休息服务得到的回应:
[
{
"type": "somthing","details": {
"d1": "va1","d2": "va2","d3": "va3"
}
},{
.....
},...
]
这是我想返回给用户的结果。 (新值是我从用户那里得到的,所以我把它作为参数。)
[
{
"type": "somthing",**"d3": "Replace with new value"**
}
},...
]
Flux<Item> items= webClient.get()
.uri("------URL------")
.retrieve()
.bodyToFlux(Item.class)
以上代码正确地从其余服务返回项目,传统上我可以使用 collectList().block()
来获取列表并替换对象内的值并返回它。
我觉得这是一种老式的方式。使用 WebClient 功能有没有更好的方法来处理这种情况?
解决方法
感谢@michalk,我使用了地图并且它有效。
Flux<Item> items= webClient.get()
.uri("------URL------")
.retrieve()
.bodyToFlux(Item.class)..map(item-> {
item.getDetails().setDThree(request.getValue);
return item;
});