Техническое задание: Сервер управления пользовательскими предпочтениями

Цель проекта

Разработать серверное приложение с REST API для учёта предпочтений пользователей по фильмам. Система должна позволять пользователям отмечать понравившиеся и непонравившиеся фильмы, а также просматривать свои списки.

Основные требования к функционалу

Эндпоинт 1: Добавление в "Понравившиеся"

  • Метод: POST
  • Принимает идентификатор пользователя (user_id) и идентификатор фильма (movie_id)
  • Добавляет movie_id в массив понравившихся фильмов для указанного пользователя в базе данных
  • Рекомендуемая структура в PostgreSQL: колонка типа BIGINT[]

Эндпоинт 2: Получение списка "Понравившиеся"

  • Метод: GET
  • Принимает идентификатор пользователя (user_id)
  • Возвращает массив идентификаторов фильмов, которые пользователь отметил как понравившиеся

Эндпоинт 3: Добавление в "Непонравившиеся"

  • Метод: POST
  • Функционал аналогичен первому эндпоинту, но для отдельного списка непонравившихся фильмов
  • Требуется отдельная колонка в базе данных или альтернативная логика хранения

Технические детали

  • Язык программирования и фреймворк: на усмотрение исполнителя, с обоснованием выбора
  • База данных: PostgreSQL с использованием типа данных массив (bigint[])
  • API: RESTful архитектура, четкая документация эндпоинтов
  • Обработка ошибок: валидация входных данных, обработка случаев отсутствия пользователя