Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dvamishkilapa/protection-network-objects
Сервис на Python (3.9+) с использованием Flask для управления статусами защиты объектов сети (пример)
https://github.com/dvamishkilapa/protection-network-objects
docker flask flask-restful flask-sqlalchemy mysql python3 sqlalchemy
Last synced: 21 days ago
JSON representation
Сервис на Python (3.9+) с использованием Flask для управления статусами защиты объектов сети (пример)
- Host: GitHub
- URL: https://github.com/dvamishkilapa/protection-network-objects
- Owner: DvaMishkiLapa
- License: apache-2.0
- Created: 2022-04-09T10:59:50.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-04-11T13:38:17.000Z (over 2 years ago)
- Last Synced: 2024-10-31T13:45:28.425Z (2 months ago)
- Topics: docker, flask, flask-restful, flask-sqlalchemy, mysql, python3, sqlalchemy
- Language: Python
- Homepage:
- Size: 16.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# protection-network-objects
Сервис на Python (3.9+) с использованием [Flask](https://flask-restful.readthedocs.io/en/latest/) для управления статусом защиты объектов сети (пример).
## Содержание
- [protection-network-objects](#protection-network-objects)
- [Содержание](#содержание)
- [1. Запуск сервиса](#1-запуск-сервиса)
- [2. Используемые инструменты](#2-используемые-инструменты)
- [3. Реализованное API](#3-реализованное-api)
- [3.1 `POST / {'CMD': 'SET', ...}`](#31-post--cmd-set-)
- [3.2 `POST / {'CMD': 'PULL'}`](#32-post--cmd-pull)### 1. Запуск сервиса
Для запуска сервиса необходим установленный [Docker](https://docs.docker.com/engine/install/) и [Docker-compose](https://docs.docker.com/compose/install/).
Команда запуска сервиса:
```bash
docker-compose up
```Команда запуска сервиса в фоновом режиме:
```bash
docker-compose up -d
```После запуска работу сервиса можно проверить отправив на `POST` запрос.
### 2. Используемые инструменты
Сервис работает с использованием [Flask-restful](https://flask-restful.readthedocs.io/en/latest/).
В качестве базы данных используется [MySQL](https://www.mysql.com/).
Для взаимодействия с [MySQL](https://www.mysql.com/) используется [flask-sqlalchemy](https://flask-sqlalchemy.palletsprojects.com/en/2.x/).
### 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 | Продолжительность защиты в секундах |Пример запроса:
```json
{
"CMD": "SET",
"ID": 1,
"DEFENSE": 3,
"TTL": 10
}
```Пример ответа:
```json
{
"ID": 1,
"result": "ok"
}
```#### 3.2 `POST / {'CMD': 'PULL'}`
Метод получения статуса всех объектов под защитой.
| Название поля | Тип данных | Обязательное поле? | Возможные значения | Описание |
| ------------- | :--------: | :----------------: | :----------------: | ----------------- |
| `CMD` | `string` | **+** | `PULL` | Требуемая команда |Пример запроса:
```json
{
"CMD": "PULL",
}
```Пример ответа:
```json
{
"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"
}
}
```