- FastAPI приложение для отправки мониторинговых алертов в мессенджеры - Поддержка Telegram и MAX/VK - Интеграция с Grafana, Zabbix, AlertManager - Автоматическое создание тикетов в Jira - Управление группами мессенджеров через API - Декораторы для авторизации и скрытия эндпоинтов - Подробная документация в папке docs/ Автор: Сергей Антропов Сайт: https://devops.org.ru
165 lines
3.6 KiB
Markdown
165 lines
3.6 KiB
Markdown
# API для управления группами
|
||
|
||
## Получение списка поддерживаемых мессенджеров
|
||
|
||
```bash
|
||
GET /api/v1/groups/messengers
|
||
```
|
||
|
||
**Пример ответа:**
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"messengers": [
|
||
{
|
||
"type": "telegram",
|
||
"name": "Telegram",
|
||
"supports_threads": true,
|
||
"enabled": true
|
||
},
|
||
{
|
||
"type": "max",
|
||
"name": "MAX/VK",
|
||
"supports_threads": false,
|
||
"enabled": false
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
## Получение списка групп
|
||
|
||
```bash
|
||
# Без API ключа (только названия)
|
||
GET /api/v1/groups
|
||
|
||
# С API ключом (полная информация)
|
||
GET /api/v1/groups
|
||
Headers: X-API-Key: your_api_key_here
|
||
```
|
||
|
||
**Пример ответа (без API ключа):**
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"groups": [
|
||
{"name": "monitoring", "chat_id": null},
|
||
{"name": "alerts", "chat_id": null}
|
||
],
|
||
"count": 2
|
||
}
|
||
```
|
||
|
||
**Пример ответа (с API ключом):**
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"groups": [
|
||
{
|
||
"name": "monitoring",
|
||
"messenger": "telegram",
|
||
"chat_id": -1001234567890,
|
||
"thread_id": 0
|
||
},
|
||
{
|
||
"name": "alerts_max",
|
||
"messenger": "max",
|
||
"chat_id": "123456789",
|
||
"thread_id": null
|
||
}
|
||
],
|
||
"count": 2
|
||
}
|
||
```
|
||
|
||
## Создание группы
|
||
|
||
```bash
|
||
POST /api/v1/groups
|
||
Headers:
|
||
Content-Type: application/json
|
||
X-API-Key: your_api_key_here
|
||
|
||
{
|
||
"group_name": "monitoring",
|
||
"messenger": "telegram",
|
||
"chat_id": -1001234567890,
|
||
"thread_id": 0
|
||
}
|
||
```
|
||
|
||
**Пример запроса для MAX/VK:**
|
||
```bash
|
||
POST /api/v1/groups
|
||
Headers:
|
||
Content-Type: application/json
|
||
X-API-Key: your_api_key_here
|
||
|
||
{
|
||
"group_name": "max_alerts",
|
||
"messenger": "max",
|
||
"chat_id": "123456789",
|
||
"thread_id": 0,
|
||
"config": {
|
||
"access_token": "your_max_access_token"
|
||
}
|
||
}
|
||
```
|
||
|
||
**Пример ответа:**
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"message": "Группа 'monitoring' создана с мессенджером 'telegram' и ID -1001234567890"
|
||
}
|
||
```
|
||
|
||
## Обновление группы
|
||
|
||
```bash
|
||
PUT /api/v1/groups/{group_name}
|
||
Headers:
|
||
Content-Type: application/json
|
||
X-API-Key: your_api_key_here
|
||
|
||
{
|
||
"messenger": "telegram",
|
||
"chat_id": -1001234567891,
|
||
"thread_id": 0
|
||
}
|
||
```
|
||
|
||
**Пример ответа:**
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"message": "Группа 'monitoring' обновлена"
|
||
}
|
||
```
|
||
|
||
## Удаление группы
|
||
|
||
```bash
|
||
DELETE /api/v1/groups/{group_name}
|
||
Headers: X-API-Key: your_api_key_here
|
||
```
|
||
|
||
**Пример ответа:**
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"message": "Группа 'monitoring' удалена"
|
||
}
|
||
```
|
||
|
||
## Примечания
|
||
|
||
- Требуется API ключ в заголовке X-API-Key для всех операций, кроме получения списка групп (без API ключа возвращаются только названия)
|
||
- Группы сохраняются в `config/groups.json`
|
||
- Chat ID можно получить, добавив бота в группу и отправив сообщение
|
||
- Используйте `@userinfobot` в Telegram для получения Chat ID группы
|
||
- Для MAX/VK используйте peer_id (может быть строкой или числом)
|
||
- Thread ID поддерживается только для Telegram (для MAX/VK игнорируется)
|
||
- Дополнительная конфигурация (config) может содержать параметры для конкретного мессенджера (например, access_token для MAX/VK)
|
||
|