Микросервисное приложение по сбору статистики. Основано на 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 предоставляет следующие методы:
- /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) - удаляет все записи в таблице. Возвращает сообщение об удалении всех данных.