Данный проект представляет собой бэкенд для сервиса, который работает с фильмами и оценками пользователей. Проект создан на основе Spring Boot, с использованием языка Java 17 и системы сборки проектов Maven. В зависимости проекта добавлены следующие сторонние библиотеки: spring-boot-starter-web, spring-boot-starter-jdbc, Lombok и H2.
Информация о фильмах, пользователях, жанрах и рейтингах хранится в реляционной системе управления базами данных H2.
- Функционал
- API Эндпоинты
- Как запустить проект?
- База данных
- Программа
- Где пользователи могут получить помощь по проекту?
- Кто поддерживает проект и вносит вклад в проект?
В данном проекте реализованы следующие функции:
- CRUD-операции над фильмами, пользователями, жанрами и рейтингами
- Получение лучших фильмов по рейтингу
- Лайк и дизлайк фильма пользователем
- Добавление и удаление пользователя из списка друзей
- Получение списка друзей пользователя
- Получение списка общих друзей между двумя пользователями
| Метод | Эндпоинт | Описание |
|---|---|---|
POST |
/films |
Добавление нового фильма |
PUT |
/films |
Обновление существующего фильма |
DELETE |
/films |
Удаление фильма |
GET |
/films |
Получение списка всех фильмов |
GET |
/films/{id} |
Получение фильма по ID |
PUT |
/films/{id}/like/{userId} |
Поставить лайк фильму |
DELETE |
/films/{id}/like/{userId} |
Удалить лайк |
GET |
/films/popular |
Получение списка самых популярных фильмов (параметр count, по умолчанию 10) |
| Метод | Эндпоинт | Описание |
|---|---|---|
POST |
/users |
Регистрация нового пользователя |
PUT |
/users |
Обновление данных пользователя |
GET |
/users |
Получение всех пользователей |
GET |
/users/{id} |
Получение пользователя по ID |
PUT |
/users/{id}/friends/{friendId} |
Добавление в друзья |
DELETE |
/users/{id}/friends/{friendId} |
Удаление из друзей |
GET |
/users/{id}/friends |
Список друзей пользователя |
GET |
/users/{id}/friends/common/{otherId} |
Список общих друзей с другим пользователем |
| Метод | Эндпоинт | Описание |
|---|---|---|
GET |
/genres |
Получить список всех жанров |
GET |
/genres/{id} |
Получить жанр по ID |
GET |
/mpa |
Получить список всех рейтингов MPAA |
GET |
/mpa/{id} |
Получить рейтинг MPAA по ID |
- Загрузить проект из ветки "main" по ссылке на скачивание;
- Извлечь содержимое архива;
- Создать базу данных на базе H2;
- При создании БД указать следующие данные:
- User:
sa - Password:
password - URL:
jdbc:h2:file:;AUTO_SERVER=TRUE
- При успешном создании БД откроется консоль;
- Также при успешном запуске программы, о чём будет рассказано дальше, весь sql-код в файле
schema.sql, находящемся по путиfilmorate/src/main/resources/, будет автоматически инициализирован.
- Открыть IntelliJ IDEA или иную среду разработки;
- Перед запуском программы необходимо внутри пути
filmorate/src/main/resources/в файлеapplication.propertiesвписать в параметреspring.datasource.urlпуть до вашей базы данных, а именно:jdbc:h2:file:;AUTO_SERVER=TRUE; - Внутри IDE запустить из пути
filmorate/src/main/java/org/example/файлFilmorateApplication.java; - Если после запуска не были выброшены исключения, то это говорит об успешном запуске проекта!
Note
- Перед началом работы убедитесь в работоспособности БД, выполнив тест соединения (в DataGrip или IntelliJ IDEA при создании базы данных нажмите "test connection");
- Проверьте, что все зависимости и сторонние библиотеки, указанные в
pom.xml, загружены на ваш ПК;- Убедитесь, что у вас установлена Java 17, необходимая для запуска программы.
При наличии вопросов или предложений касаемо проекта писать в telegram: @der_maven поддержка проекта осуществляется автором репозитория