Предоставьте класс generi c вместо класса mapper при выполнении API с использованием resttemplate - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь написать интеграционный тест для одного из API, но, тем не менее, он возвращает объект XML, где у меня нет соответствующего порядка классов для сопоставления. Как я могу обойтись без занятий?

Вот мой код

HttpHeaders authHeaders = new HttpHeaders();
authHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
authHeaders.add("Authorization", "Bearer "+oAuthToken );

UriComponentsBuilder builder=UriComponentsBuilder.fromUriString(PES_END_POINT + PES_RESOURCE)

   .queryParam("count", "100")
   .queryParam("app-name", "bb")


 HttpEntity entity = new HttpEntity(authHeaders);

 Object response = restTemplate.exchange(builder.toUriString(), HttpMethod.POST, entity , Class<T> ); --> Here what generic class can I provide?

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 07 февраля 2020

просто используйте ObjectMapper

        ResponseEntity<String> response = restTemplate.exchange(builder.toUriString(), HttpMethod.POST, entity , String.class); 
        JavaType javaType = objectMapper.getTypeFactory().constructType(yourClass);
        YourGenericClass<T> result = objectMapper.readValue(response.getBody(), javaType);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...