【发布时间】:2018-12-13 01:48:04
【问题描述】:
我有端点:/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;
}
对于上面的/upstream 响应,数据类型是Upstream
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class Upstream extends Node {
private String id;
private String name;
}
现在我有一个必须返回Flux<Stream>(或List<Stream>?)的服务,所以我创建了这种方法
@Override
public Flux<Stream> getAllNodes() {
var endpoint = "/upstream";
var response = webClient.get().uri(endpoint).retrieve()
.bodyToMono(new ParameterizedTypeReference<ResponseWrapper<Upstream>>() {
});
return ???;
}
如何转换ResponseWrapper<Upstream> 使其返回Flux<Stream> 或List<Stream>?
我猜是.flatMap() 或map(),但正确的用法是什么?
非常感谢
【问题讨论】:
标签: java reactive-programming spring-webflux reactor