Как объекты ответа в ResponseEntity отображаются при использовании RestTemplate? - PullRequest
0 голосов
/ 15 января 2020

Допустим, у меня есть два микросервиса MS1 и MS2, и я звоню из MS1 в MS2 с помощью RestClient.

Код в MS1:

public ResponseEntity<ResponeTypeOne> saveResponse(List<Review> request) {
        String url = getReviewRestServiceEndPoint() + "/ms2/save/";
        return  restTemplate.postForEntity(url, request, ResponeTypeOne.class);
    }

Код в MS2: Из MS2 я хочу отправить другой объект ошибки (FYI: в случае исключения)

@ExceptionHandler(MyCustomException.class)
    public ResponseEntity<ErrorOutputMessage> handleException(MyCustomException ex){
        return new ResponseEntity<>(new ErrorOutputMessage(ex.getCode(),ex.getMessage()),HttpStatus.BAD_REQUEST);
    }

Может кто-нибудь сказать, как происходит сопоставление ResponeTypeOne и ErrorOutputMessage в следующих случаях:

  1. Когда поля в обоих объектах одинаковы.
  2. Когда поля в обоих объектах разные.

1 Ответ

0 голосов
/ 15 января 2020

RestTemplate имеет DefaultResponseErrorHandler, который выдает исключение в случае ошибок клиента / сервера (неудачный код состояния).

...