Приложение, похожее на кинопоиск. В нём пользователиле ставят оценки фильмам и добавляют других пользоватей в друзья.
Монолитное приложение, данные хранятся в БД H2. Обращение к БД через JDBC template.
Эндпоинт | Описание |
---|---|
POST /users | добавление пользователя |
GET /users | получение списка пользователей |
GET /users/{id} | получение пользователя по id |
PUT /users | изменение информации о пользователе |
DELETE /users/{id} | удаление пользователя по id |
DELETE /users | удаление всех пользователей |
GET /users/{id}/friends | получение списка друзей пользователя |
GET /users/{id}/friends/common/{otherId} | получение общих друзей двух пользователей |
PUT /users/{id}/friends/{friendId} | добавление пользователя в друзья |
DELETE /users/{id}/friends/{friendId} | удаление пользователя из друзей |
GET /films | получение списка фильмов |
GET /films/{id} | получение фильма по id |
GET /films/popular?count={count} | получение списка популярных фильмов длиной count. Параметр count не обязательный, по умолчанию равен 10 |
POST /films | добавление фильма |
PUT /films | изменение информации о фильме |
PUT /films/{id}/like/{userId} | добавление лайка фильму |
DELETE /films/{id} } | удаление фильма по id |
DELETE /films } | удаление всех фильмов |
DELETE /films/{id}/like/{userId} | удаление лайка у фильма |
GET /genres | получение списка жанров фильмов |
GET /genres/{id} | получение жанра по id |
GET /mpa | получение списка рейтингов MPA фильмов |
GET /mpa/{id} | получение рейтинга MPA по id |
https://dbdiagram.io/d/646b6874dca9fb07c487cc84
Написано 23 юнит-теста для основной функциональности приложения с использованием аннотации @SpringBootTest
Откройте командную строку cmd и выполните следующие команды:
git clone https://github.com/nikvitya/java-filmorate.git
В командной строке переходите в корень проекта. Далее
mvn clean package
java -jar target\filmorate-0.0.1-SNAPSHOT.jar
Приложение готово к использованию! Сервис доступен по адресу http://localhost:8080
Со сценариями работы приложения ознакомьтесь, посмотрев и запустив [коллекцию Postman-тестов]
Дальнейшая разработка приложения велась в [групповом проекте] (https://github.com/AlinaProvotorova/java-filmorate) ветка [add-reviews] (https://github.com/AlinaProvotorova/java-filmorate/tree/add-reviews)
Для фильмов:
- Получить список всех фильмов, упорядоченных по дате выхода:
SELECT *
FROM Film
ORDER BY releaseDate;
Для пользователей:
- Получение пользователя по идентификатору id:
SELECT *
FROM users
WHERE user_id = ?
- Получение всех пользователей:
SELECT *
FROM users