Skip to content

Необходимо создать сервис для хранения и подачи объявлений. Объявления должны храниться в базе данных. Сервис должен предоставлять API, работающее поверх HTTP в формате JSON.

License

Notifications You must be signed in to change notification settings

KostadinAlmishev/avito-test-rest-api

Repository files navigation

avito-test-rest-api

Необходимо создать сервис для хранения и подачи объявлений. Объявления должны храниться в базе данных. Сервис должен предоставлять API, работающее поверх HTTP в формате JSON.

Требования

  • язык, технологии: Go/Python/PHP/Java/JavaScript, PostgreSQL/MySQL, любой фраемворк (или без него)
  • код должен быть выложен на github
  • 3 метода: получение списка объявлений, получение одного объявления, создание объявления
  • валидация полей (не больше 3 ссылок на фото, описание не больше 1000 символов, название не больше 200 символов)

Метод получения списка объявлений

  • нужна пагинация, на одной странице должно присутствовать 10 объявлений
  • нужна возможность сортировки: по цене (возрастание/убывание) и по дате создания (возрастание/убывание)
  • поля в ответе: название объявления, ссылка на главное фото (первое в списке), цена

Метод получения конкретного объявления

  • обязательные поля в ответе: название объявления, цена, ссылка на главное фото
  • опциональные поля (можно запросить, передав параметр fields): описание, ссылки на все фото

Метод создания объявления:

  • принимает все вышеперечисленные поля: название, описание, несколько ссылок на фотографии (сами фото загружать никуда не требуется), цена
  • возвращает ID созданного объявления и код результата (ошибка или успех)

Усложнения

Не обязательно, но задание может быть выполнено с любым числом усложнений:

  • написаны юнит тесты
  • контейнеризация – возможность поднять проект с помощью docker-compose up
  • кеширование – для увеличения скорости ответа от сервера, может быть добавлено кеширование (Redis/Memcached)

About

Необходимо создать сервис для хранения и подачи объявлений. Объявления должны храниться в базе данных. Сервис должен предоставлять API, работающее поверх HTTP в формате JSON.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published