Реализовать простое REST API-приложение, который загружает изображения на локальный диск, делает превью изображений (маленькое и среднее), и регистрирует информацию об оригиналах изображений и превью в своей БД.
Требования к функциональности:
Загрузка изображений (необходимо реализовать хотя бы пару возможностей загрузки):
- Возможность загружать несколько изображений.
- Возможность принимать multipart/form-data запросы.
- Возможность принимать JSON запросы с BASE64 закодированными изображениями.
- Возможность загружать изображения по заданному URL (изображение размещено где-то в интернете).
Превью:
- Создание квадратного превью изображения размером 100px на 100px.
- Создание превью изображения с сохранением пропорций, чтобы вписать в границы 400px на 400px.
Доп. API-методы:
- Получить список всех изображений и превью (в формате [url, width, height]).
- Получить список неудавшихся загрузок и ресайзов (с кодами ошибок; например, если была загружена не картинка, а документ).
- Удалить изображение и его превью из БД.
Требования к реализации:
- Docker-окружение (Dockerfile, docker-compose.yml и прочее), которые позволяют поднять приложение единой docker-compose up командой.
- Swagger-контракт (OpenAPI).
- Symfony 5.
Любые другие аспекты реализации, которые не указаны в требованиях, могут быть выполнены на ваше усмотрение.
Необходим README.md файл с обзором реализации и шагами по запуску проекта.
Следующее будет плюсом:
- Наличие тестов.
- CI интеграция (Travis CI, Circle CI, любые другие).