RedmanPlus / FastAPI-Microservice

A test task yet again. Uses a FastAPI and PostgreSQL for working. All info on launching and using are in README.md

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FastAPI-Microservice

Микросервисное приложение по сбору статистики. Основано на FastAPI, работает с PostgreSQL. У приложения нет прямой привязки к БД, и их можно задать изнутри приложения при запуске приложения, а также изменить во время работы.

Запуск приложения

Условия системы для запуска:

  • Python 3.7 и выше
  • PostgreSQL 11 и выше Для запуска приложения рекомендуется использовать venv - чтобы все библиотеки были концентрированы в одном месте. Чтобы запустить приложение, для начала введите следующие команды: 'pip instal -r "requirements.txt"' Pip установит все необходимые библиотеки. Далее запустите приложение командой: 'python api.py' В скрипте прописан автоматический запуск Uvicorn на localhost, так что программа автоматически запустится докально.

Подключение к базе данных

Для подключения к базе данных необходимо направить POST-запрос на "/" - адрес. POST-запрос должен быть следующего содержания.

host="Хост БД",

dbname="Имя БД" # БД может быть любая, скрипт автоматически создаст таблицу для данных,

user="Имя пользователя БД",

password="Пароль доступа к БД",

port="Порт доступа к БД", Далее скрипт создаст подключение к БД, или же проверит его валидность. Таблица создастся автоматически при первом подключении к БД на любой машине, и подключение будет сохраняться на протяжение всей работы системы. При отправке GET-запроса на тот же адрес система направит сохраненные в системе данные подклчения. При необходимости также можно позднее направить другой POST-запрос с другими данными БД.

Важно! Данные подключения после выключения сервера не сохраняются.

Работа с API

API предоставляет следующие методы:

  • /add-stats/ (POST) - Добавляет данные в БД. Принимает запрос в следующем формате:

id=ID объекта

date_of_event=Дата события

num_of_views=Количество просмотров

num_of_clicks=Количество кликов

price_of_click=Цена одного клика. Возвращает строку с сообщением что данные загружены в БД

  • /get-stats/date_first/date-last?order_by=XXX (GET) - Запрос на поиск конкретных вхождений в БД. Первый параметр - самая ранняя дата для поиска. Второй - последняя дата для поиска. Последний параметр - параметр фильтрации, по какому из критериев будет вестись отбор. На вывод метот выдает:

id=ID объекта

Дата=Дата события

Просмотры=Количество просмотров

Клики=Количество кликов

Цена=Цена клика

Средняя стоимость клика=(говорит само за себя)

Средняя стоимость тысячи показов=(Тоже что и средняя стоимость кликов) API предоставит все записи, находящиеся между самой ранней и самой поздней датой НЕ включая сами даты.

  • /delete-stats/ (DELETE) - удаляет все записи в таблице. Возвращает сообщение об удалении всех данных.

About

A test task yet again. Uses a FastAPI and PostgreSQL for working. All info on launching and using are in README.md

License:MIT License


Languages

Language:Python 100.0%