{
"name" : " userName" ,
"device_id" : " Qr2da&y38dba7"
}
Поле Описание Тип данных
name Ник пользователя String
device_id Серийный номер устройства String
Поле Описание Тип данных
name Жанр фильма String
{
"slug" : " dune_2_arrakis" ,
"name" : " Новинки 2023 года" ,
"cover" : " https://images.unsplash.com/photo-1719811838849-bf1cb4426c69?q=80&w=3087&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
}
Поле Описание Тип данных
slug Slug идентификатор подборки String
name Имя подборки String
cover Ссылка на постер подборки String
{
"id" : 999 ,
"name" : " Дюна" ,
"poster" : " http://www.img.ru/img.jpg"
}
Поле Описание Тип данных
id Уникальный идентификатор фильма Integer
name Название фильма String
poster Ссылка на постер фильма String
{
"id" : 999 ,
"name" : " Дюна" ,
"description" : " Наследник знаменитого дома Атрейдесов..." ,
"year" : 2021 ,
"countries" : [
" Канада" ,
" Венгрия"
],
"poster" : " http://www.img.ru/img.jpg" ,
"alternative_name" : " Dune" ,
"rating_kp" : 8.5 ,
"rating_imdb" : 6.1 ,
"votes_kp" : 1000 ,
"votes_imdb" : 500 ,
"movie_length" : 155 ,
"genres" : [
{
"name" : " Фантастика"
},
{
"name" : " Боевик"
}
],
"directors" : [
" Дени Вильнев"
],
"actors" : [
" Тимоти Шаламе" ,
" Оскар Айзек"
]
}
Поле Описание Тип данных
id Уникальный идентификатор фильма Integer
name Название фильма String
description Описание фильма String
year Дата выхода Integer
countries Массив стран фильма [String]
poster Ссылка на постер фильма String
alternative_name Название фильма на другом языке String? (Может быть null)
rating_kp Оценка на Кинопоиске Float
rating_imdb Оценка на Imdb Float
votes_kp Количество оценок на Кинопоиске Integer
votes_imdb Количество оценок на Imdb Integer
movie_length Продолжительность фильма в минутах Integer
genres Массив жанров фильма [Genre]
directors Массив режиссеров [String]
actors Массив актеров [String]
{
"id" : " Q2Nurf9o" ,
"users" : [
{
"device_id" : " string" ,
"name" : " string"
}
],
"matched_movies" : 5 ,
"date" : " 2024-06-22" ,
"status" : " waiting" ,
"session_img" : " poster url"
}
Поле Описание Тип данных
id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры) String
users Массив пользователей сессии [User]
matched_movies Число совпавших фильмов Integer
date Дата создания сессии String
status Статус сессии SessionStatus
session_img Ссылка на постер из любого фильма сессии (в приоритете постеры из фильмов по которым были совпадния с наибвысшей оценкой по кинопоиску, если совпадений не было, то берем постер фильма с наивысшей оценкой по кинопоиску) String
SessionStatus представляет собой возможные статусы сессии. Эти статусы могут использоваться для отслеживания состояния сессии на различных этапах.
waiting - Ожидание
voting - Голосование
closed - Закрыто
Получение списка доступных жанров и подборок
Структура ответа
{
"genres" : [
{
"name" : " Комедия"
}
],
"collections" : [
{
"slug" : " dune_2_arrakis" ,
"name" : " Новинки 2023 года" ,
"cover" : " http://www.img.ru/img.jpg"
}
]
}
Поле Описание Тип данных
genres Массив доступных для выбора жанров [Genre]
collections Массив доступных для выбора подборок [Collection]
Создание сеанса для выбора фильмов
Структура запроса RequestBody
{
"device_id" : " Qr2da&y38dba7" ,
"name" : " userName" ,
"genres" : [
" Комедия"
],
"collections" : []
}
Поле Описание Тип данных
device_id Серийный номер устройства пользователя String
name Ник пользователя String
genres Массив полей name у модели Genre, выбранных пользователем жанров (может быть пустым, если пользователь выбирает по подборкам) [String]
collections Массив полей slug у модели Collection, выбранных пользователем подборок (может быть пустым, если пользователь выбирает по жанрам) [String]
Структура ответа
{
"session_id" : " GIGd281"
}
Поле Описание Тип данных
session_id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры) String
Структура запроса RequestBody
{
"session_id" : " GIGd281" ,
"user" : {
"name" : " userName" ,
"device_id" : " Qr2da&y38dba7"
}
}
Поле Описание Тип данных
session_id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры) String
user Информация о подключаемом пользователе User
Получение информации о комнате ожидания (сессии) (Периодический запрос)
GET /session_waiting_room
Структура запроса RequestBody
{
"session_id" : " GIGd281"
}
Поле Описание Тип данных
session_id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры) String
Структура ответа
{
"users" : [
{
"device_id" : " Qr2da&y38dba7" ,
"name" : " userName"
}
],
"matched_movies" : 0 ,
"date" : " 2024-09-23" ,
"status" : " waiting"
}
Поле Описание Тип данных
users Массив пользователей, присоединенных к комнате ожидания [User]
matched_movies Число совпавших фильмов Integer
date Дата создания сессии String
status Статус сессии SessionStatus
Информирование о начале сессии от ее создателя
Структура запроса RequestBody
{
"session_id" : " GIGd281"
}
Поле Описание Тип данных
session_id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры) String
Информирование о выходе из комнаты ожидания
Структура запроса RequestBody
{
"session_id" : " GIGd281" ,
"device_id" : " Qr2da&y38dba7"
}
Поле Описание Тип данных
session_id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры) String
device_id Серийный номер устройства пользователя. Если серийный номер равен серийному номеру создателя, оповещаем пользователей об отмене сессии String
Получение списка фильмов в сессии для выбора
GET /api/sessions/[session_id]/movies/
Структура запроса
Параметр Описание
session_id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры)
Структура ответа
{
"movies" : [
{
"id" : 999 ,
"name" : " Дюна" ,
"description" : " Наследник знаменитого дома Атрейдесов..." ,
"year" : 2021 ,
"countries" : [
" Канада" ,
" Венгрия"
],
"poster" : " http://www.img.ru/img.jpg" ,
"alternative_name" : " Dune" ,
"rating_kp" : 8.5 ,
"rating_imdb" : 6.1 ,
"votes_kp" : 1000 ,
"votes_imdb" : 500 ,
"movie_length" : 155 ,
"genres" : [
{
"name" : " Фантастика"
},
{
"name" : " Боевик"
}
],
"directors" : [
" Дени Вильнев"
],
"actors" : [
" Тимоти Шаламе" ,
" Оскар Айзек"
]
}
]
}
Поле Описание Тип данных
movies Массив фильмов для выбора, отфильтрованный по выбранным жанрам или подборкам [MovieDetails]
Пометка фильма как понравившегося
Структура запроса RequestBody
{
"film_id" : " 1q3fj38d" ,
"device_id" : " Qr2da&y38dba7" ,
"session_id" : " GIGd281"
}
Поле Описание Тип данных
film_id Id понравившегося фильма String
device_id Серийный номер устройства пользователя, который пометил фильм как понравившийся String
session_id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры) String
Отмена выбора фильма как понравившегося
Структура запроса RequestBody
{
"film_id" : " 1q3fj38d" ,
"device_id" : " Qr2da&y38dba7" ,
"session_id" : " GIGd281"
}
Поле Описание Тип данных
film_id Id фильма String
device_id Серийный номер устройства пользователя, который отменил свой выбор String
session_id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры) String
Получение количества совпадений и последнего match фильма (Периодический запрос)
Совпадением фильма считается, когда все участники сессии пометили фильм как понравившийся
Структура запроса RequestBody
{
"session_id" : " GIGd281"
}
Поле Описание Тип данных
session_id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры) String
Структура ответа
{
"count" : 5 ,
"last_matched_movie" :
{
"id" : 999 ,
"name" : " Дюна" ,
"description" : " Наследник знаменитого дома Атрейдесов..." ,
"year" : 2021 ,
"countries" : [
" Канада" ,
" Венгрия"
],
"poster" : " http://www.img.ru/img.jpg" ,
"alternative_name" : " Dune" ,
"rating_kp" : 8.5 ,
"rating_imdb" : 6.1 ,
"votes_kp" : 1000 ,
"votes_imdb" : 500 ,
"movie_length" : 155 ,
"genres" : [
{
"name" : " Фантастика"
},
{
"name" : " Боевик"
}
],
"directors" : [
" Дени Вильнев"
],
"actors" : [
" Тимоти Шаламе" ,
" Оскар Айзек"
]
},
"is_roulette_start" : false
}
Поле Описание Тип данных
count Количество совпадений Integer
last_matched_movie Последний совпавший фильм (может быть null, если совпадений ещё не было) MovieDetails
is_roulette_start Признак начала сценария с рулеткой Boolean
Получение списка совпавших фильмов в сессии
GET /api/sessions/[session_id]/get_matched_movies/
Совпадением фильма считается, когда все участники сессии пометили фильм как понравившийся
Структура запроса
Параметр Описание
session_id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры)
Структура ответа
{
"movies" : [
{
"id" : 999 ,
"name" : " Дюна" ,
"poster" : " http://www.img.ru/img.jpg"
}
]
}
Поле Описание Тип данных
movies Массив совпавших фильмов [Movie]
Получение полной информации о фильме
GET /api/movieDetails/[movie_id]/
Параметр Описание
movie_id Уникальный идентификатор фильма
Структура ответа
{
"movie" :
{
"id" : 999 ,
"name" : " Дюна" ,
"description" : " Наследник знаменитого дома Атрейдесов..." ,
"year" : 2021 ,
"countries" : [
" Канада" ,
" Венгрия"
],
"poster" : " http://www.img.ru/img.jpg" ,
"alternative_name" : " Dune" ,
"rating_kp" : 8.5 ,
"rating_imdb" : 6.1 ,
"votes_kp" : 1000 ,
"votes_imdb" : 500 ,
"movie_length" : 155 ,
"genres" : [
{
"name" : " Фантастика"
},
{
"name" : " Боевик"
}
],
"directors" : [
" Дени Вильнев"
],
"actors" : [
" Тимоти Шаламе" ,
" Оскар Айзек"
]
}
}
Поле Описание Тип данных
movie Полная информация о фильме MovieDetails
Получение подробной информации о сессии
GET /api/sessions/[session_id]/
Структура запроса
Параметр Описание
session_id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры)
Структура ответа
{
"session" : {
"id" : " Q2Nurf9o" ,
"users" : [
{
"userId" : " string" ,
"name" : " string"
}
],
"matched_movies" : 5 ,
"date" : " 2024-06-22" ,
"status" : " waiting" ,
"session_img" : " poster url"
}
}
Поле Описание Тип данных
session Данные сессии Session
Информирование о начале события "Рулетка"
Структура запроса RequestBody
{
"session_id" : " GIGd281" ,
"device_id" : " Qr2da&y38dba7"
}
Поле Описание Тип данных
session_id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры) String
device_id Серийный номер устройства пользователя, который инициировал событие String
Структура ответа
{
"random_movie_id" : " 1q3ev4m"
}
Поле Описание Тип данных
random_movie_id Id выбранного фильма для просмотра случайным образом String
Подключение пользователя к событию "Рулетка"
Структура запроса RequestBody
{
"session_id" : " GIGd281" ,
"device_id" : " Qr2da&y38dba7"
}
Поле Описание Тип данных
session_id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры) String
device_id Серийный номер устройства пользователя, который подключается к событию String
Структура ответа
{
"random_movie_id" : " 1q3ev4m"
}
Поле Описание Тип данных
random_movie_id Id фильма для просмотра, выбранного случайным образом String
Получение списка пользователей, подключенных к событию "Рулетка" (Периодический запрос)
Структура запроса RequestBody
{
"session_id" : " GIGd281"
}
Поле Описание Тип данных
session_id Уникальный код сеанса, по которому пользователи могут присоединиться (Состоит из 7 символов: 4 буквы и 3 цифры) String
Структура ответа
{
"users" : [
{
"name" : " userName" ,
"device_id" : " Qr2da&y38dba7"
}
]
}
Поле Описание Тип данных
users Массив пользователей, подключенных к событию "Рулетка" [User]