Как ответить клиенту файлом на Post-запрос. SpringBoot REST API

140
23 марта 2019, 01:10

Есть API сервер со SpringBoot. Клиент отравляет POST-запрос c Json в теле. Из этого Json сервер создает pdf и этот pdf надо отправить обратно клиенту.

Вот метод принимающий JSON объект от клента, и конвертящий его в pdf. Как вернуть в этом методе файл для клиента? Я понимаю что надо в бинарный вид перевести сначала. Не понимаю как вернуть именно в этом методе. Какой тип возвращаемого значения должен быть?

@PostMapping()
    public void createOrder(@RequestBody PaymentOrder order){
        PdfCreater.createPdf(order);
    }
Answer 1

Попробуйте так написать:

@PostMapping()
@ResponseBody
public ResponseEntity<Resource>  createOrder(@RequestBody PaymentOrder order){
    final Resource file = PdfCreater.createPdf(order);
    return ResponseEntity
            .ok()
            .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getFilename() + "\"")
            .body(file);
}

Resource из массива байт можно получить с помощью ByteArrayResource

READ ALSO
Java FX привязка к переменной по Id

Java FX привязка к переменной по Id

Давно уже увлекаюсь java в свободное время и решил начать изучать javafx(Буквально часа два назад)И я некоторые моменты не понял

150
Расположение элементов на Jframe

Расположение элементов на Jframe

Подскажите пожалуйста с помощью какого Layout можно расположить элементы на Jframe в столбик один под другим? Спасибо

121
В чем разница между этми записями?

В чем разница между этми записями?

У меня есть класс Car, и я хочу создать его экземплярМожно написать:

137