h4cktivist / views-stats

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Сервис для сбора статистики по просмотрам

Установка и запуск

Для запуска приложения необходимо скачать данный репозиторий и установить требуемые зависимости:

git clone https://github.com/h4cktivist/views-stats.git
pip install -r requirements.txt

Необходимо также создать .env файл в корне проекта, где указать следующие данные:

SQLALCHEMY_DATABASE_URL = "Ссылка на базу данных"
SECRET_KEY = "Секретный ключ для JWT"
ALGORITHM = "Алгоритм хэширования JWT"

После этого, приложение можно запустить следующим образом:

uvicorn main:app

Локально API будет доступен по адресу http://127.0.0.1:8000

Маршруты

Создание пользователя - POST на /users. Тело запроса:

{
  "username": string,
  "password": string
}

Аутентификация - POST на /users/login. Тело запроса:

{
  "username": string,
  "password": string
}

Ответ от сервера при успешной аутентификации:

{
  "type": "Bearer",
  "token": токен JWT
}

NB! При запросах для следующих маршрутов, требуется указывать заголовок Authorization, содержащий токен, полученный при аутентификации.

Отправка запроса на сбор просмотров с постов ВК - POST на /get-views/vk. Тело запроса:

{
  "links": [список ссылок]
}

При успешном выполнении данного запроса, ссылки отправятся на обработку в фоновом режиме. Проверить статус выполнения парсинга по каждой ссылке можно отправкой GET запроса на /get-bg-tasks. Пример ответа на такой запрос:

[
    {
        "platform": "vk",
        "link": "https://vk.com/-",
        "status": "done",
        "views": 9782
    },
    {
        "platform": "vk",
        "link": "https://vk.com/-",
        "status": "in progress",
        "views": null
    },
    {
        "platform": "vk",
        "link": "https://vk.com/-",
        "status": "created",
        "views": null
    }
]

Статусы задач:

  • created - задача создана, находится в очереди на выполнение
  • in progress - задача в работе
  • done - задача выполнена. Для задачи с таким статусом доступно количество просмотров в поле views.
  • failed - выполнение задачи провалено

Более подробную информацию о возможных запросах можно получить в Swagger по адресу /docs.

About


Languages

Language:Python 100.0%