На тему API
dkrylov:
У вас будут методы POST (создание товара), GET (получение), PUT (обновление данных товара).
И вот при PUT вы не сможете послать файл, т.к. в канонах и http, файлы идут только через POST.
Для работы по API, делается отдельный метод для загрузки изображения.
Допустим путь по работе с товаром: /api/v1/goods (ну и соответствующие post, get..)
Для загрузки изображения, вам потребуется что то типа PUT: /api/v1/goods/upload...
Что бы это работало, сначала создается позиция товара в сущности goods, затем загружается изображение и записываем в goods_photo.
ID из goods_photo пишем в соответствующие поле сущности goods (goods_photo_id)
Можно конечно костыли понаделать и писать все через POST.