Проект позволяет управлять базой фильмов, пользователей и лайков, реализуя функциональность похожую на рекомендательную систему.
- Java 22
- Spring Boot
- Spring JDBC
- H2
- Maven
- JUnit
- REST API
GET /films- получить все фильмыGET /films/{filmId}— получить фильм по IDGET /films/popular?count={n}&genreId={id}&year={yyyy}— топ популярных фильмовGET /films/director/{directorId}?sortBy={likes|year}— фильмы режиссёра с сортировкойGET /films/common?userId={id}&friendId={id}— общие фильмы двух пользователейGET /films/search?query={text}&by=title,director— поиск по названию/режиссёруPUT /films— обновить фильмPUT /films/{filmId}/like/{userId}— поставить лайк фильмуDELETE /films/{filmId}— удалить фильмDELETE /films/{filmId}/like/{userId}— удалить лайк фильма
GET /users— получить всех пользователейGET /users/{userId}— получить пользователя по IDGET /users/{userId}/friends— получить список друзейGET /users/{userId}/friends/common/{friendId}— общие друзьяGET /users/{userId}/feed— лента активности пользователяGET /users/{userId}/recommendations— рекомендации фильмовPOST /users— создать пользователяPUT /users— обновить пользователяPUT /users/{userId}/friends/{friendId}— добавить в друзьяDELETE /users/{userId}— удалить пользователяDELETE /users/{userId}/friends/{friendId}— удалить из друзей
GET /reviews?filmId={id}&count={n}— получить список рецензийGET /reviews/{reviewId}— получить рецензию по IDPOST /reviews— добавить рецензиюPUT /reviews— обновить рецензиюDELETE /reviews/{reviewId}— удалить рецензиюPUT /reviews/{reviewId}/like/{userId}— лайк рецензииPUT /reviews/{reviewId}/dislike/{userId}— дизлайк рецензииDELETE /reviews/{reviewId}/like/{userId}— удалить лайкDELETE /reviews/{reviewId}/dislike/{userId}— удалить дизлайк
GET /genres— получить все жанрыGET /genres/{genreId}— получить жанр по ID
GET /mpa— получить все рейтингиGET /mpa/{ratingId}— получить рейтинг по ID
GET /directors— получить всех режиссёровGET /directors/{directorId}— получить режиссёра по IDPOST /directors— создать режиссёраPUT /directors— обновить режиссёраDELETE /directors/{directorId}— удалить режиссёра
