如何在第一个呼叫列表中的每个项目上链接一个webclient呼叫

用户2621255:

我有两个对象

CarParts {
    String   id
    WorkItem workItem
}

WorkItemResponse {
    List<WorkItem> resource; <- always contains one item.
}

我想在汽车零件上创建一个Webclient,它将Mono<List<CarParts>>为列表中的每个项目返回a ,我想在第二次调用中使用ID,然后将第二个调用的结果设置为Carparts每个WorkItem对象

我也想做一个

Mono<List<Carparts>> carpartsmono = webclient.get.exchange();

Mono<WorkItemResponse> itemResponse = webclient.get().uri( item.id of carparts)

carpartsMono.flatmap(item -> item.stream().map(t -> t.setWorkItem(webclient.get("uri + 
     t.getId)).block().getResource().get(0)).collect(Collectors.AsList));

但我找不到解决方案。

五郎:

在反应堆中,应尝试使所有代码异步,在您的情况下,如下所示:

Flux<CarPart> carPartFlux=
    webClient.get()
    .uri("/car-parts/{id}")
    .exchange()
    .bodyToFlux(CarParts.class)
    .map(carPart ->  {
        return
        webclient.get()
                 .uri("/workitems/" + cartPart.getWorkItemId())
                 .exchange()
                 .bodyToMono(WorkItemResponse.class)
                 .map(workitem ->  {
                      carPart.setWorkItem(workitem);
                      return carPart;
                 });
                 
    });

现在您可以通过汽车零件的单声道了。请尽量避免.block通话。就像您将其发送到rest api客户端一样,您可以在rest api响应中直接传递carPartMono。

上面的代码也是示例,可以根据当前执行条件进行进一步改进。喜欢可以缓存帮助。因此,您可以从此开始并监视性能并采取后续步骤。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检测第一个“ /”路由呼叫?

如何从列表中删除第一个项目?

调查某个呼叫类别的第一个呼叫与该呼叫类别的后续呼叫之间的分数差异

模拟第一个呼叫失败,第二个呼叫成功

如何在python中的每个列表/元组中修改第一个值?

如何在 R 中的第一个位置为列表的每个对象添加一个值

如何在Beautiful Soup中选择列表中每个元素的第一个孩子

如何在另一个项目中引用的用户控件中单击呼叫按钮?

根据每个列表的第一个元素从列表中删除项目

R-使用列表中每个项目的第一个元素过滤列表

删除链接列表中的第一个节点

从链接列表中删除第一个

如何在Scala中将第一个列表中的每个元素与相应列表一起添加?

当每个项目也包装在另一个元组中时,如何从元组列表中获取第一个项目

在第一个列表分页中显示项目

如何仅从列表的每个项目中获取第一个元素

Python-如何替换列表列表中每个列表的第一个元素

如何在列表的第一个单元格中搜索,每个列表都是字典中的值?

如何在PyQuery查询中访问第一个项目(或第x个项目)?

如何提取每个子列表中每个元组的第一个元素?

如何从python列表中的每个列表中拉出第一个元素?

如何从列表中的每个项目中提取第一个字符并进行操作

升级到Capybara 2.0后,如何单击项目列表中的第一个链接?

为什么第二个呼叫会覆盖第一个呼叫的结果?

链接列表仅打印第一个列表的第一个值

如何在双向链接列表的第一个节点之前插入新节点?

如何在 R 中列表的每个向量(不同长度)中附加第一个和最后一个元素,而不会使代码变慢?

如何在每个对象上防止Default?只有第一个起作用

如何在第一个元素最大的列表中找到一个列表?