У меня есть конечная точка: /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()
, но как правильно использовать?
Большое спасибо