Сервис на Python (3.9+) с использованием Flask для управления статусом защиты объектов сети (пример).
Для запуска сервиса необходим установленный Docker и Docker-compose.
Команда запуска сервиса:
docker-compose up
Команда запуска сервиса в фоновом режиме:
docker-compose up -d
После запуска работу сервиса можно проверить отправив на http://127.0.0.1:8000/ POST
запрос.
Сервис работает с использованием Flask-restful.
В качестве базы данных используется MySQL.
Для взаимодействия с MySQL используется flask-sqlalchemy.
Метод установки/обновления статуса защиты для указанного объекта.
Название поля | Тип данных | Обязательное поле? | Возможные значения | Описание |
---|---|---|---|---|
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"
}
Метод получения статуса всех объектов под защитой.
Название поля | Тип данных | Обязательное поле? | Возможные значения | Описание |
---|---|---|---|---|
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"
}
}