С каждым годом количество выпускаемых фильмов увеличивается, а вместе с ним и разнообразие рейтингов, что усложняет выбор следующего фильма для просмотра. Но не беспокойтесь! Filmorate — это серверное приложение для управления фильмами и рейтингами пользователей, предлагающее отобранный список топ-5 рекомендуемых фильмов для просмотра. Этот сервис гарантирует, что вы и ваши друзья проведете меньше времени за выбором и больше времени за просмотром.
- JDK 11 или новее
- Maven 3.6 или новее
- Spring Boot 2.4 или новее
- Любая IDE, поддерживающая Java (IntelliJ IDEA, Eclipse, VS Code)
Клонируйте репозиторий:
git clone https://github.com/yourusername/filmorate.git
Перейдите в директорию проекта:
cd filmorate
Соберите проект с помощью Maven:
mvn clean install
Запустите приложение:
mvn spring-boot:run
Данные, которые могут приходить в запросе на добавление нового фильма или пользователя. Эти данные должны соответствовать определённым критериям.
Для Film:
- Название не может быть пустым.
- Максимальная длина описания — 200 символов.
- Дата релиза — не раньше 28 декабря 1895 года.
- Продолжительность фильма должна быть положительным числом.
Для User:
- Электронная почта не может быть пустой и должна содержать символ
@
. - Логин не может быть пустым и содержать пробелы.
- Имя для отображения может быть пустым — в таком случае будет использован логин.
- Дата рождения не может быть в будущем.
В проекте есть логирование на библиотеке sl4j для операций, которые изменяют сущности — добавляют и обновляют их. Также логируются причины ошибок — например, если валидация не пройдена.
Создайте пакет с именем model
. Внутри добавьте два класса: Film
и User
, которые являются моделями данных приложения.
- id (Integer): Уникальный идентификатор фильма.
- name (String): Название фильма.
- description (String): Описание фильма.
- releaseDate (LocalDate): Дата выпуска фильма.
- duration (Integer): Продолжительность фильма в минутах.
- id (Integer): Уникальный идентификатор пользователя.
- email (String): Адрес электронной почты пользователя.
- login (String): Логин пользователя.
- name (String): Отображаемое имя пользователя.
- birthday (LocalDate): Дата рождения пользователя.
Создайте два контроллера: FilmController
для управления операциями с фильмами и UserController
для управления операциями с пользователями. Убедитесь, что эти контроллеры следуют принципам REST.
POST /films
: Добавить новый фильм.PUT /films/{id}
: Обновить существующий фильм.GET /films
: Получить все фильмы.
POST /users
: Создать нового пользователя.PUT /users/{id}
: Обновить существующего пользователя.GET /users
: Получить всех пользователей.
Ссылка https://app.quickdatabasediagrams.com/#/d/Qndfao
Степан Бокарев
Студент ЯндексПрактикума
- Выпускник МАИ, программная инженерия. Год окончания 2024 г.
- Email: [email protected]
- GitHub: github.com/Stepan5024