- FastAPI приложение для отправки мониторинговых алертов в мессенджеры - Поддержка Telegram и MAX/VK - Интеграция с Grafana, Zabbix, AlertManager - Автоматическое создание тикетов в Jira - Управление группами мессенджеров через API - Декораторы для авторизации и скрытия эндпоинтов - Подробная документация в папке docs/ Автор: Сергей Антропов Сайт: https://devops.org.ru
3.6 KiB
3.6 KiB
API для управления группами
Получение списка поддерживаемых мессенджеров
GET /api/v1/groups/messengers
Пример ответа:
{
"status": "ok",
"messengers": [
{
"type": "telegram",
"name": "Telegram",
"supports_threads": true,
"enabled": true
},
{
"type": "max",
"name": "MAX/VK",
"supports_threads": false,
"enabled": false
}
]
}
Получение списка групп
# Без API ключа (только названия)
GET /api/v1/groups
# С API ключом (полная информация)
GET /api/v1/groups
Headers: X-API-Key: your_api_key_here
Пример ответа (без API ключа):
{
"status": "ok",
"groups": [
{"name": "monitoring", "chat_id": null},
{"name": "alerts", "chat_id": null}
],
"count": 2
}
Пример ответа (с API ключом):
{
"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
}
Создание группы
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:
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"
}
}
Пример ответа:
{
"status": "ok",
"message": "Группа 'monitoring' создана с мессенджером 'telegram' и ID -1001234567890"
}
Обновление группы
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
}
Пример ответа:
{
"status": "ok",
"message": "Группа 'monitoring' обновлена"
}
Удаление группы
DELETE /api/v1/groups/{group_name}
Headers: X-API-Key: your_api_key_here
Пример ответа:
{
"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)