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

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

Сообщение Anonymous »

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

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

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

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

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

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

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

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

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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