Данный репозиторий содержит сервис Hosts, который является одним из микросервисов многопользовательской игровой платформы с синхронизацией сессий. Сервис Hosts отвечает за управление конфигурацией учетных записей хостов. Он позволяет хостам настраивать правила доступа к их игровым сессиям, управлять списками друзей и заблокированных пользователей.
Сервис Hosts предоставляет RESTful API для выполнения следующих операций:
-
POST /{host}
– Создание хоста: Создание новой записи о хосте с уникальным UUID. -
GET /{host}
– Получение информации о хосте: Получение текущей конфигурации хоста. -
PUT /{host}/only_friends
– Настройка доступа "только для друзей": Установка разрешения, разрешен ли вход в сессию только для друзей. -
PUT /{host}/allow_nonames
– Настройка разрешения для анонимных пользователей: Установка разрешения, разрешен ли вход в сессию незарегистрированным (анонимным) пользователям. -
Управление списком друзей:
-
POST /{host}/friends/{friend}
– Добавление пользователя в список друзей. -
DELETE /{host}/friends/{former_friend}
– Удаление пользователя из списка друзей.
-
-
Управление списком заблокированных пользователей:
-
POST /{host}/banlist/{banned}
– Блокировка пользователя (запрет подключения к сессии). -
DELETE /{host}/banlist/{banned}
– Разблокировка пользователя. -
GET /{host}/welcomes/{guest}
– Проверка доступа гостя: Проверка, разрешен ли гостю доступ к сессии данного хоста на основе текущих настроек и списков.
-
Сервис реализован на Python и использует следующие технологии:
-
Веб-фреймворк: FastAPI для создания RESTful API.
-
База данных: TinyDB для легковесного хранения данных о хостах в формате JSON (hosts.json).
Клонируйте репозиторий:
git clone https://hoster.by/help/unix-khosting-nastroyka/kak-sozdat-git-repozitoriy-i-nastroit-avtoobnovlenie-iz-nego-koda-sayta/
cd [название папки репозитория Hosts]
Создайте виртуальное окружение и установите зависимости:
python -m venv venv
source venv/bin/activate # Для Linux/macOS
# venv\Scripts\activate # Для Windows
pip install -r requirements.txt
Запустите сервис:
python main.py
Сервис будет доступен по адресу, указанному в config.py.
Тестирование Для запуска тестов используйте pytest:
pytest test_main.py
Тесты проверяют корректность работы всех API-методов и взаимодействия с базой данных.