Skip to content

Cервис для управления и мониторинга хостов в инфраструктуре Magicthirst.

Notifications You must be signed in to change notification settings

Magicthirst/Service_Hosts_Py

Repository files navigation

Hosts: Сервис конфигурации хоста

Описание проекта

Данный репозиторий содержит сервис 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-методов и взаимодействия с базой данных.

About

Cервис для управления и мониторинга хостов в инфраструктуре Magicthirst.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published