gpt4 book ai didi

spring - 如何使用 Reactor (Spring WebClient) 做重复调用?

转载 作者:行者123 更新时间:2023-12-05 08:53:52 25 4
gpt4 key购买 nike

我正在使用 Reactor (Spring5 WebClient) 作为我的响应式(Reactive)编程 API。我有 2 个 REST 端点可以调用。第一个的结果将是第二个的参数。对于第二个 API,它将返回一个带有“hasMore”值的结果。如果此值为 true,我应该更改分页参数并再次调用第二个 API。演示代码如下:

 client.getApi1()
.map(r -> r.getResult())
.flatMap(p -> client.getApi2(p, 2(page size), 1(page start)))
.subscribe(r -> System.out.println(r.isHasmore()));

如何重复调用第二个 API (getApi2) 直到“hasMore”为假。

此外,我需要更改参数页面大小和页面开始

最佳答案

试试这段代码:

 AtomicInteger pageCounter = new AtomicInteger(0);
client.getApi1()
.map(r -> r.getResult())
.flatMap(p -> client.getApi2(p, 2(page size), pageCounter.incrementAndGet()))
.repeat()
.takeWhile(r -> r.isHasmore())
.subscribe(r -> System.out.println(r.isHasmore()));

repeat() 无限调用 getApi2takeWhile(continuePredicate)continuePredicate (r.isHasmore()) 返回 true

时传递值

关于spring - 如何使用 Reactor (Spring WebClient) 做重复调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52250893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com