Для тестирования API мне нужно разобрать ответ на запрос, используя io.micronaut.http.client.HttpClient.
Я предпочитаю использовать формат, указанный ниже.
Response<User> response =
client.toBlocking().retrieve(HttpRequest.POST("/", user), Response.class);
Но это не работает. Я получаю ошибку приведения типа при попытке получить пользователя из ответа
User user = response.getUser();
В настоящее время я использую ObjectMapper (Jackson), как показано ниже,
String response = client.toBlocking().retrieve(HttpRequest.POST("/", user), String.class);
ObjectMapper objectMapper = new ObjectMapper();
Response<User> response = objectMapper.readValue(response, new TypeReference<Response<User>>() {});
Есть ли способ использовать TypeReference напрямую с методом извлечения HttpClient? Или любым другим способом использовать общий тип класса с HttpClient.
Другая полезная информация
// Response generic class
class Response<T> {
T data;
....
}
Пример ответа
{
"data": {
"name":"sample"
},
"message": "Success"
}