API Документация
REST API + WebSocket для приложения знакомств 3×3
Server is running
🔐 Auth
POST
/api/users/register/
Регистрация нового пользователя
{"email":"user@mail.com","password":"secret123","age":25,"gender":"M","is_adult":true}
POST
/api/users/login/
Логин, получение JWT
{"email":"user@mail.com","password":"secret123"}
GET
/api/users/profile/
Профиль (требуется Bearer token)
PUT
/api/users/profile/
Обновление профиля
{"bio":"Люблю море","age":26}
🏠 Rooms
POST
/api/rooms/
Войти в очередь ожидания (3M+3F → создание комнаты)
GET
/api/rooms/<uuid:room_id>/
Детали комнаты (только для участников)
POST
/api/rooms/cancel/
Выйти из очереди ожидания
WS
ws://localhost:8000/ws/rooms/<room_id>/
WebSocket — игровая комната
💞 Matches
| Метод | URL | Описание |
|---|---|---|
| GET | /api/matches/ |
Список взаимных мэтчей текущего пользователя |
Response:
[
{
"id": 1,
"room": "uuid-here",
"user_a": 1,
"user_a_username": "alice",
"user_b": 2,
"user_b_username": "bob",
"is_mutual": true,
"created_at": "2026-06-10T22:00:00+03:00"
}
]
⚡ WebSocket — игровая комната
Endpoint: ws://localhost:8000/ws/rooms/<room_id>/
Клиент → Сервер
| Тип | Данные | Описание |
|---|---|---|
get_question | {} | Получить текущий вопрос |
send_answer | {"question_id":1,"text":"..."} | Отправить ответ |
submit_selections | {"selected_user_ids":[3,5]} | Выбрать 1-2 участников |
next_phase | {} | Переключить фазу раунда |
Сервер → Клиент
| Тип | Данные | Описание |
|---|---|---|
current_question | {"id":1,"text":"...","round_number":1} | Текущий вопрос |
new_question | {"id":2,"text":"...","round_number":2} | Новый вопрос (след. раунд) |
answer_submitted | {"user_id":2,"question_id":1} | Пользователь ответил |
all_answers_ready | {"answers":[...]} | Все ответили |
selections_submitted | {"user_id":2} | Пользователь выбрал |
phase_changed | {"status":"...","current_round":1,"round_phase":"answers"} | Смена фазы |
matches_ready | {"matches":[...]} | Игра завершена |
participants_list | {"participants":[...]} | Список участников |
error | {"message":"..."} | Ошибка |
Фазы раунда
questions
answers
selections
round++
questions
×3
completed
Тестовые данные
Admin: admin@cupid.dev / admin123
Тестовый пользователь: test@test.com / test1234