Необходимо создать сервис для хранения и подачи объявлений.
Объявления должны храниться в базе данных (MySQL, PostgreSQL). Сервис должен предоставлять API, работающее поверх HTTP в формате JSON.
- Язык программирования PHP
- Финальную версию выложить на github.com
- Простая инструкция для запуска (в идеале — с возможностью запустить через docker-compose up, но это необязательно);
- 3 метода: получение списка объявлений, получение одного объявления, создание объявления;
- Валидация полей: не более 3 ссылок на фото, описание не более 1000 символов, название не более 200 символов;
- Реализовать простой фронт на Vue.js (для дизайна можно использовать Vuetify, или аналоги);
- Если есть сомнения по деталям — решение принять самостоятельно, но в своём README.md рекомендуем выписать вопросы и принятые решения по ним.
- Пагинация: на одной странице должно присутствовать 10 объявлений;
- Cортировка: по цене (возрастание/убывание) и по дате создания (возрастание/убывание);
- Поля в ответе: название объявления, ссылка на главное фото (первое в списке), цена, дата создания.
- Обязательные поля в ответе: название объявления, цена, ссылка на главное фото, дата создания.
- Опциональные поля (можно запросить, передав параметр fields): описание, ссылки на все фото.
- Принимает все вышеперечисленные поля: название, описание, несколько ссылок на фотографии (сами фото загружать никуда не требуется), цена;
- Возвращает ID созданного объявления и код результата (ошибка или успех).
Не обязательно, но задание может быть выполнено с любым числом усложнений:
- Контейнеризация: есть возможность поднять проект с помощью команды docker-compose up;
- Документация: есть структурированное описание методов сервиса. Идеально оформить все в Swagger;
- Unit tests: постарайтесь достичь покрытия в 70% и больше;