Как преобразовать тело ответа клиента в моно определенного типа? - PullRequest
0 голосов
/ 12 февраля 2019

Итак, я отправляю запрос с помощью WebClient и после получения ответа с помощью exchange () мне нужно извлечь тело в Mono of Object_1.Функция должна вернуть 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 ()

1 Ответ

0 голосов
/ 12 февраля 2019

Я полагаю, что вы можете сделать это с перегрузкой bodyToMono, которая занимает ParameterizedTypeReference.

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

Вы можете написать это в строке,если вы предпочитаете, и вам не трудно читать:

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