Задача
Разработать сервис для подачи объявлений с сохранением в базе данных. Сервис должен предоставлять API, работающее поверх HTTP в формате JSON.
Требования
- Язык программирования — Go;
- Готовую версию выложить на Github;
- Простая инструкция для запуска (в идеале — с возможностью запустить через
docker-compose up, но это необязательно);
- 3 метода:
- получение списка объявлений,
- получение одного объявления,
- создание объявления;
- Валидация полей:
- не больше 3 ссылок на фото,
- описание не больше 1000 символов,
- название не больше 200 символов;
Если есть сомнения по деталям — решение принять самостоятельно, но в своём README.md рекомендуем выписать вопросы и принятые решения по ним.
Ограничения по времени
2-4 часа на выполнение. Если что-то не укладывается в указанное время, то реализовать задачу по степени важности функционала. Мы не требуем выполнить абсолютно всё. Здесь важны умение приоритизировать и чистота кода.
Детали
Метод получения списка объявлений
- Пагинация: на одной странице должно присутствовать 10 объявлений;
- Cортировки: по цене (возрастание/убывание) и по дате создания (возрастание/убывание);
- Поля в ответе: название объявления, ссылка на главное фото (первое в списке), цена.
Метод получения конкретного объявления
- Обязательные поля в ответе: название объявления, цена, ссылка на главное фото;
- Опциональные поля (можно запросить, передав параметр fields): описание, ссылки на все фото.
Метод создания объявления: