我有一个这样的端点:
@PostMapping("/products")
Flux<Product> getProducts(@RequestBody Flux<String> ids) {
return Flux...
}
在我的客户端,我想使用这个端点,但不确定如何在主体中传递一个Flux of String(我不想让它成为一个列表)
Flux<Product> getProducts(Flux<String> ids) {
return webClient.post().uri("/products")
.body(/* .. how should I do here? ..*/)
.retrieve()
.bodyToFlux(Product.class);
}
实际上,您可以将Flux传递给WebClient
上的.body()
方法
Flux<Person> personFlux = ... ;
Mono<Void> result = client.post()
.uri("/persons/{id}", id)
.contentType(MediaType.APPLICATION_STREAM_JSON)
.body(personFlux, Person.class)
.retrieve()
.bodyToMono(Void.class);
示例取自Spring参考文档
您想要使用的body()
方法的变体是:
<T,P extends org.reactivestreams.Publisher<T>> WebClient.RequestHeadersSpec<?> body(P publisher,
Class<T> elementClass)
此方法的相关JavaDoc