Wpis z mikrobloga

co jest nie tak mirki, wykonuję sobie RestTemplate w #java #spring

ResponseEntity execute = restTemplate.exchange(updateListUri.getUri(), HttpMethod.POST, entity, Object.class);
i dalej

if (execute.getBody() instanceof ResponseOK){
return;
}
if (execute.getBody() instanceof ErrorResponseSet) {
//log
} else {
//log 2
}
klasa ResponseOK wygląda tak

@Getter
@NoArgsConstructor
@ToString
public class ResponseOK {
private String message;
}
i mimo zwrotki z restowego serwisu

{
"message": "ok"
}
nie wchodzi mi w pierwszego if'a what the fu.. (°°

debugger twierdzi, że body zawiera LinketHashMap, co zrobić by było to traktowane jak obiekt ResponseOK a nie jak haszmapa?
JacobTheLiar - co jest nie tak mirki, wykonuję sobie RestTemplate w #java #spring

...

źródło: comment_1584961333F9GKUD5P0Pb1dhtLJbvtKC.jpg

Pobierz
  • 9
@Caroo hmm, z tym wyjątkiem to też pomysł. Raczej stosuje wyjątki dla rzeczy których się nie spodziewam, a tu mogę mieć klasę ResponseOK albo ErrorResponseSet. Refaktoryzuje teraz to i zamiast Object polecę do String. Następnie Jakcsonem spróbuję zmapować do ResponseOK w przypadku 201 lub do drugiego w przeciwnym przypadku. Wyjątek w momencie braku możliwości zmapowania.
@Caroo ok, zgodzę się ale co z informacją kiedy poleci wyjątek? Chciałbym odczytać body, które otrzymuję kiedy jest kod odpowiedzi mam inny jak 201?

grzebiąc w tej dokumentacji co podesłałeś ciekawostkę znalazłem, którą zastosuję i chyba się sprawdzi na 99%

RestTemplate.setErrorHandler(...);
jeszcze się odezwę czy to to