如何将客户端响应的主体转换为某种类型的 Mono?

How to convert the body of a client response to a Mono of a certain type?

因此,我使用 WebClient 发送请求,在使用 exchange() 检索响应后,我需要将正文提取到 Object_1 的 Mono。该功能需要 return Mono>。通常你会使用 bodyToMono(SomeObject.class) 但这在这种情况下不起作用。

public Mono<Object1<Object2>> getAll(String someParam) {

       return WebClient.create(this.baseUrl)
                .get()
                .uri(uriBuilder -> uriBuilder.path("/some_path")
                        .queryParam("someParam", someParam)
                        .build())
                .exchange()
                .flatMap(clientResponse -> clientResponse.bodyToMono(????));

    }

我想弄清楚要在 bodyToMono() 中放入什么

我相信你可以通过 bodyToMono that takes a ParameterizedTypeReference 的重载来做到这一点。

ParameterizedTypeReference<Object1<Object2>> typeRef =
    new ParameterizedTypeReference<Object1<Object2>>() {};
// . . .
.flatMap(clientResponse -> clientResponse.bodyToMono(typeRef));

如果您愿意并且不觉得它太难阅读,您可以内联编写它:

.flatMap(clientResponse -> clientResponse.bodyToMono(
    new ParameterizedTypeReference<Object1<Object2>>() {}));