【发布时间】:2019-11-20 02:57:50
【问题描述】:
我正在尝试根据用户输入动态创建一系列 Mono。我正在调用其他 API 并在 Mono 中获取 ClientResponse。我的用例是按顺序调用 2 个或更多 API,并且下一个 API 的输入有效负载取决于前一个 API 的输出。
我的硬编码序列操作看起来像
public Mono<ResponseEntity> processSequentially(ServerHttpRequest request, JsonNode reqBody) { RequestData reqData = this.prepareReqMetadata(request, reqBody); 返回 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 或更多。
【问题讨论】:
标签: java spring project-reactor reactor-netty