Я создаю (в основном) проход через API с RestTemplate, который запрашивает различные различные сервисы.При ошибках и пропущенных параметрах целевые API доставляют сообщения об ошибках, которые пропадают в ответах, и я хочу передать их через тот же HttpCode.Пример:
curl -XPOST sourceapi:/...
{"type":"/errors/failed","title":"Entity Exists","details":"Entity with name \"test\" already exists","status":409}
Если я делаю то же самое с RestTemplate, он выдает и Exception, и сообщение является нулевым, и это выглядит так:
curl -XPOST testapi:/...
409 null
Как я могу передать код ошибки и этот объект там "клиенту".(даже запись в журнал будет началом ...)
Я получил @ControllerAdvice
класс, который уже кеширует его, но сообщение на самом деле просто 409 null
@ExceptionHandler(value = {HttpClientErrorException.class})
public ResponseEntity<Object> clientErrorException(HttpClientErrorException ex) {
return ResponseEntity.status(ex.getStatusCode()).body(ex.getMessage());
}
Есть лиспособ добавить ErrorParser или что-то еще при создании шаблона с RestTemplateBuilder?