我有一个方法,尝试使用WebClient返回Mono。
它可以返回我期望的结果,接着我尝试创建另一个支持参数为List的方法。
但是这次返回了一个奇怪的结果。
@GetMapping("getMatch")
public Mono<Object> getMatch(@RequestParam Long matchId) {
return WebClient.create(OpenDotaConstant.BASE_URL).get()
.uri("/matches/{matchId}", matchId)
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(Object.class);
}
它可以返回我期望的结果,接着我尝试创建另一个支持参数为List的方法。
@GetMapping("getMatches")
public Flux<Object> getMatches(@RequestParam String matchesId) {
List<Long> matchesList = JSON.parseArray(matchesId, Long.class);
return Flux.fromStream(matchesList.parallelStream().map(this::getMatch));
}
但是这次返回了一个奇怪的结果。
[
{
"scanAvailable": true
},
{
"scanAvailable": true
}
]
我刚接触反应式编程,请问如何正确地结合Stream和Mono,然后将它们转换为Flux?
getMatch
方法并返回一个列表吗?你所发布的响应看起来合理。你还期望得到其他什么吗? - MuratOzkan