Java 弹簧无功:转换磁通<;包装纸<;X>&燃气轮机;流动<;X>;
我有端点:Java 弹簧无功:转换磁通<;包装纸<;X>&燃气轮机;流动<;X>;,java,reactive-programming,spring-webflux,reactor,Java,Reactive Programming,Spring Webflux,Reactor,我有端点:/upstreams 它将以以下格式返回Json: { "next" : "String", "data" : [ { "id" : "String", "name" : "String" } ] } 我有几个这样的端点,所以我创建了一个包装器类 @Data @NoArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) public class ResponseWr
/upstreams
它将以以下格式返回Json:
{
"next" : "String",
"data" : [
{
"id" : "String",
"name" : "String"
}
]
}
我有几个这样的端点,所以我创建了一个包装器类
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class ResponseWrapper<T> {
private List<T> data;
private String next;
}
现在我有一个必须返回Flux
(或List
?)的服务,所以我创建了这种方法
@Override
public Flux<Stream> getAllNodes() {
var endpoint = "/upstream";
var response = webClient.get().uri(endpoint).retrieve()
.bodyToMono(new ParameterizedTypeReference<ResponseWrapper<Upstream>>() {
});
return ???;
}
@覆盖
公共流量getAllNodes(){
var endpoint=“/upstream”;
var response=webClient.get().uri(endpoint.retrieve())
.BodyToNo(新的参数化类型引用(){
});
返回???;
}
如何转换响应包装器
,使其返回通量
或列表
我猜是.flatMap()
还是map()
,但正确的用法是什么
非常感谢我相信您的
var响应
是一个单声道
,因此如下所示:
return response.flatMapMany(pesponseWrapper -> Flux.fromIterable(pesponseWrapper.getData()));
我相信您的
var响应
是一个Mono
,因此如下所示:
return response.flatMapMany(pesponseWrapper -> Flux.fromIterable(pesponseWrapper.getData()));