Spring Boot - можно ли вернуть файл или xml из веб-службы в зависимости от успеха? - PullRequest
0 голосов
/ 10 апреля 2019

Мне было поручено создать веб-службу, которая извлекает файл из учетной записи хранилища Azure.

При успехе : вернуть файл в качестве полезной нагрузки

При ошибке : вернуть ответ xml.

Ответ xmlбудет содержать копию запроса, коды ошибок, сообщения и т. д., поскольку пользователю потребуется полезное сообщение об ошибке, объясняющее, что произошло.

Я могу найти инструкции о том, как вернуть один объект / тип носителя, но не несколькотипы зависят от состояния.

Возможно ли это?

1 Ответ

1 голос
/ 10 апреля 2019

Решено с обработчиком исключений благодаря комментарию Abhijeet - важно добавить contentType или он возвращает JSON по умолчанию

@ControllerAdvice
public class MyExceptionHandler {

  @ResponseStatus(HttpStatus.I_AM_A_TEAPOT)
  @ExceptionHandler(MyException.class)
  @ResponseBody
  ResponseEntity<?> exceptionHandler(MyException e){
      InvoiceArchiveResponse responseObject = e.getResponseObject();
      return ResponseEntity.badRequest()
              .contentType(MediaType.parseMediaType("application/xml"))
              .body(responseObject);
  }
}

Спасибо! * * 1004

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...