DvaMishkiLapa / protection-network-objects

Сервис на Python (3.9+) с использованием Flask для управления статусами защиты объектов сети (пример)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

protection-network-objects

Сервис на Python (3.9+) с использованием Flask для управления статусом защиты объектов сети (пример).

Содержание

1. Запуск сервиса

Для запуска сервиса необходим установленный Docker и Docker-compose.

Команда запуска сервиса:

docker-compose up

Команда запуска сервиса в фоновом режиме:

docker-compose up -d

После запуска работу сервиса можно проверить отправив на http://127.0.0.1:8000/ POST запрос.

2. Используемые инструменты

Сервис работает с использованием Flask-restful.

В качестве базы данных используется MySQL.

Для взаимодействия с MySQL используется flask-sqlalchemy.

3. Реализованное API

3.1 POST / ​{'CMD': 'SET', ...}

Метод установки/обновления статуса защиты для указанного объекта.

Название поля Тип данных Обязательное поле? Возможные значения Описание
CMD string + SET Требуемая команда
ID int + 0 < ID < 2000000001 ID объекта для установки или обновления
DEFENSE int + 1 <= DEFENSE <= 3 Требуемый уровень защиты
TTL int + 1 <= DEFENSE <= 3600 Продолжительность защиты в секундах

Пример запроса:

{
    "CMD": "SET",
    "ID": 1,
    "DEFENSE": 3,
    "TTL": 10
}

Пример ответа:

{
    "ID": 1,
    "result": "ok"
}

3.2 POST / ​{'CMD': 'PULL'}

Метод получения статуса всех объектов под защитой.

Название поля Тип данных Обязательное поле? Возможные значения Описание
CMD string + PULL Требуемая команда

Пример запроса:

{
    "CMD": "PULL",
}

Пример ответа:

{
    "1": {
        "DEFENSE": 2,
        "START_PROTECTION": "04-11-2022, 13:18:56",
        "END_PROTECTION": "04-11-2022, 13:20:36"
    },
    "2": {
        "DEFENSE": 2,
        "START_PROTECTION": "04-11-2022, 13:19:02",
        "END_PROTECTION": "04-11-2022, 13:21:32"
    },
    "3": {
        "DEFENSE": 1,
        "START_PROTECTION": "04-11-2022, 13:19:15",
        "END_PROTECTION": "04-11-2022, 13:21:45"
    }
}

About

Сервис на Python (3.9+) с использованием Flask для управления статусами защиты объектов сети (пример)

License:Apache License 2.0


Languages

Language:Python 94.6%Language:Dockerfile 5.4%