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