Как обрабатывать ошибки HTTP от вызова API в Springboot? - PullRequest
0 голосов
/ 20 сентября 2019

Это scenerio.

Я создаю бизнес-микросервис (SERVICE2), который использует другой SERVICE1 (он взаимодействует с базой данных).

Как обработать обработку ошибокответ API?

Рассмотрены следующие ссылки:

  1. Spring MVC - исключение при запуске RestTemplate, когда происходит http 404

  2. REST API 404: неверный URI или недостающий ресурс?

  3. https://www.baeldung.com/spring-rest-template-error-handling

Вызов API:

ResponseEntity<UserInfo> response = (restTemplate.getForEntity(RESOURCE_URL, UserInfo.class, assetId));
            return response.getBody();
    }

Я сделал это:

@Component
@ControllerAdvice
public class ApiErrorHandler extends ResponseEntityExceptionHandler {
    @ExceptionHandler({HttpClientErrorException.class, HttpServerErrorException.class})
    public void handleError(HttpClientErrorException ex, HttpServletResponse response) throws IOException {
        LOGGER.error(ex.getMessage(),ex);
        response.sendError(ex.getRawStatusCode());
    }

}

Я получил это:

Я отправил на запрос SERIVCE: 1

  1. API-вызов к SERVICE1 -> 404 ответа и 405 ответа и 200 ок

Я получил

SERIVCE2 -> 404 ответ с меткой времени, сообщением, трассировкой, путем

Что мне нужно

  1. Я хочу отправитьтолько код ответа и сообщение для отправки обратно, а не след.

  2. Реализован ли верный подход?

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

...