@Sour_Lemon

Как правильно отправлять файлы в RESTfull приложении?

Имеется класс Book. Помимо прочего он содержит массив байтов, представляющий собой изображение (обложку книги). Вопрос: как правильно отправить объект такого класса клиенту? Нужно отправлять изображение отдельно или сразу вместе с остальными данными? Как именно нужно отправлять изображение: в виде простого массива байтов, в виде объекта Resource или ещё каким-нибудь образом?

public class Book {
    private String title;
...
    private byte[] cover;
...
}


Расскажите (или поделитесь ссылкой) как данный процесс отправки происходит вцелом. В сети полно статьей о том как загружать и отгружать голый файл, а описание ситуации, когда файл является полем некого класса я не нашёл.
Заранее спасибо
  • Вопрос задан
  • 101 просмотр
Решения вопроса 2
Jacen11
@Jacen11
обычно ссылку на файл передают в объекте, клиент потом по ссылке качает
получается больше гибкости, клиент может не дожидаться окончания загрузки тяжелого файла и уже что то показывать. Ну и так проще обычно
Ответ написан
@Dmtm
Android
сейчас, раз уже есть массив байт, то передавать вместе с классом, так проще
а вообще - вынести работу с файлами в отдельный репозиторий (там и кеширование можно добавить для экономии) и в Book останется только имя файла
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Wan-Derer
Можно разделить Java-объект на два и на фронте получать двумя разными запросами:
- описание: объект -> DTO-объект (тот же объект, но без картинки) -> JSON;
- картинка: массив -> поток -> MIME-тип картинка.
Это имеет смысл если картинка довольно большая, если только миниатюра, то можно передавать всё вместе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы