我正在构建一个调用两个REST资源的服务。第一个调用检索项目列表,第二个调用获取列表中每个项目的详细信息。
.../rticles/rmarkdown/templates/plos_article/skeleton/PLOS-submission.eps
我可以看到发送了Flux<Result> search(query) {
return client.post().uri("/search")
.body(BodyInserters.fromObject(query))
.retrieve()
.bodyToMono(SearchResults.class)
.flatMapIterable(r -> r.getResults())
.flatMap(this::detail);
}
Mono<Detail> detail(result) {
return client.get().uri("/detail/{id}", result.id)
.retrieve()
.doOnNext(System.out::println))
.bodyToMono(Detail.class);
}
请求,但是从未从我的测试中调用GET /detail/{id}
块中的doOnNext
:
this::detail
此测试失败:
java.lang.AssertionError:期望“ assertNext”失败(预期:onNext();实际:onComplete())
在这个阶段,我有点受阻,Reactor文档在这种情况下使用StepVerifier.create(target.search(query))
.assertNext(d -> {
assertThat(d.getField()).isEqualTo("detailed");
})
.verifyComplete();
,看起来好像发送了子请求(有关详细信息)。在看Wirmock时,我看到他能够返回响应,但是我一无所有。
有人知道哪里出了问题吗?