Универсальный веб-клиент JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Универсальный веб-клиент Java

Сообщение Anonymous »

У меня есть несколько API, которые возвращают разные тела ответа. Я хочу иметь универсальный сервис, способный десериализовать любые данные до заданного типа.

Код: Выделить всё

public class GenericResponse  {
private T data;
private String message;
}
здесь T может быть любым dto.
и мой общий сервис выглядит так.

Код: Выделить всё

public RestService{
public void getRestUrl(url){
webClient
.get()
.uri(url)
.headers(httpHeaders -> httpHeaders.addAll(getApiHeaders()))
.retrieve()
.onStatus(HttpStatusCode::isError, this::handleError)
.bodyToMono(new ParameterizedTypeReference() {})
}
}

Код: Выделить всё

GenericResponse response = restService.getRestUrl(urlWithParameters);
однако, когда я запускаю запрос, ответ не сериализуется в MyCustomDTO, он сериализуется в linkedHashMap, поскольку Java не может определить, что такое T во время выполнения.
Есть ли какой-либо обходной путь или какой-либо другой способ создать общую службу отдыха для удаления дублирования кода каждый раз, когда я делаю вызов отдыха.>

Подробнее здесь: https://stackoverflow.com/questions/798 ... web-client

Вернуться в «JAVA»