Skip to content

Anstane/fastapi_app

Repository files navigation

FastAPI APP

Стек:

Python 3.11 | FastAPI 0.109 | SQLAlchemy 2+ | AIOSQLite 0.20

Функционал:

FastAPI-приложение, получающее данные от пользователя с указанием устройства и возвращающее обработанную статистику.

Приложение было упаковано в Docker контейнер для простоты запуска.

Эндпоинты

Получить все данные записанные в БД.

Возвращает все данные записанные в БД.

URL: /data/

Метод: GET

Пример:

  /data/

Получить конкретные данные по ID объекта.

Возвращает конкретный объект данных по ID.

URL: /data/data_id/{data_id}/

Метод: GET

Пример:

  /data/1/

Получить все данные по указанному устройству.

Получаем все объекты данных по переданному в запросе устройству.

URL: /data/device/{device}

Метод: GET

Пример:

  /data/device/IPhone/

Опубликовать данные с устройства.

Ожидает от пользователя JSON с указанием необходимых параметров.

URL: /data/

Метод: POST

Пример:

  /data/

JSON:

  {
    "device": "string",
    "x": 0,
    "y": 0,
    "z": 0
  }

Получить статистику по устройству за всё время.

Высчитывает статистику за все время по указанному устройству.

URL: /data/statistics/{device}/

Метод: GET

Пример:

  /data/statistics/IPhone/

Получить статистику по устройству за указанный промежуток времени.

Высчитывает статистику за указанное время по устройству.

URL: /data/statistics/

Метод: POST

Пример:

  /data/statistics/

JSON:

  {
    "start_date": "2024-02-22",
    "end_date": "2024-02-22",
    "device": "IPhone"
  }

Установка

Клонируем репозиторй

  git@github.com:Anstane/fastapi_app.git

Переходим в папку с приложением

  cd fastapi_app

Запускаем docker compose

  docker compose up --build

Пользуемся приложением.

Планы на доработку

  • Добавить модель, в которой будут храниться обработанные данные
  • Сделать Celery-скрипт, который будет в фоновом формате подготавливать данные для модели со статистикой
  • Реализовать автоматическое получение ID устройства через middleware
  • Сделать нагрузочное тестирование на проект

Автор

Михаил Московкин

About

FastAPI приложения для сбора статистики

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors