Spring HATEOAS обработка ошибок с VndErrors - PullRequest
0 голосов
/ 28 сентября 2018

Я изо всех сил пытаюсь найти чистый способ обработки ошибок, вызванных API с поддержкой HATEOAS.

По сути, наш бэкэнд-сервис - это весеннее приложение, которое в случае исключений использует @ControllerAdvice для возврата VndErrorsэкземпляр возвращается к потребителю.

VndErrors предоставляется spring-hateoas и после возврата будет сериализован и помечен как application/vnd.error.

В части потребителя услуг, которую мы также используем spring-hateoas и мы общаемся с бэкэнд-сервисом через стандартный RestTemplate.

По умолчанию ResponseErrorHandler в RestTemplate выдает исключения для ответов статуй клиента, сервера или неизвестного http, но он не пытаетсядесериализовать тело ответа в любом случае.

public MyBusinessConcept myBusinessConcept() {
    try {
        return restTemplate().exchange("http://foo/bar",  ..., MyBusinessConcept.class).getBody();
    } catch (HttpClientErrorException e) {
        // ???
    }
}

Как мы можем получить экземпляр VndErrors из неудачного ответа http?

1 Ответ

0 голосов
/ 01 октября 2018
...