Я пытаюсь создать последовательность Mono динамически на основе пользовательского ввода.Я звоню по остальным API и получаю ClientResponse в Mono.Мои сценарии использования - вызов двух или более API-интерфейсов в последовательности, а полезная нагрузка следующего API зависит от выходных данных предыдущего API.
Моя жестко запрограммированная последовательность операций выглядит как
public Mono<ResponseEntity> processSequentially(ServerHttpRequest request, JsonNode reqBody) {
RequestData reqData = this.prepareReqMetadata(request, reqBody);
return commonConnector.getApiResponse(reqData)
.flatMap(resp -> resp.bodyToMono(JsonNode.class))
.flatMap(respBody -> getApiResponse(request, metadataRequestBuilder, respBody))
.flatMap(resp -> resp.bodyToMono(JsonNode.class))
.flatMap(respBody -> getApiResponse(request, listingRequestBuilder, respBody))
}
Это работает нормально, но я хочу сделать этот метод универсальным.Я хочу получить все необходимые параметры от пользователя в списке POJO и создать последовательность flatMap на основе ввода списка.Таким образом, если длина List равна 2, будет 2 последовательности flatMap, а если длина равна 3 или более, число flatMap также будет равно 3 или более.