Files
MessageGateway/docs/api/groups.md
Sergey Antropov b90def35ed Initial commit: Message Gateway project
- FastAPI приложение для отправки мониторинговых алертов в мессенджеры
- Поддержка Telegram и MAX/VK
- Интеграция с Grafana, Zabbix, AlertManager
- Автоматическое создание тикетов в Jira
- Управление группами мессенджеров через API
- Декораторы для авторизации и скрытия эндпоинтов
- Подробная документация в папке docs/

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-11-12 20:25:11 +03:00

3.6 KiB
Raw Permalink Blame History

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)