Архітектура інтеграції

Legion надає двосторонній REST API: (1) Legion як отримувач розрахованих моделей від АПК прогнозування; (2) Legion як джерело подій для зовнішніх систем моніторингу та диспетчеризації. Весь обмін відбувається через HTTPS з Bearer-токен автентифікацією.

Прийом даних від АПК (Вхідний API)

POST /api/v1/hazard/trigger Authorization: Bearer {token} Content-Type: application/json { "type": "chemical", // "chemical" | "hydro" | "combined" "substance": "NH3", // код речовини (для хім.) "quantity_tonnes": 500, "source_lat": 49.4431, "source_lon": 32.0581, "wind_speed_ms": 3.0, "wind_direction_deg": 225, // румб, де 0=Північ "pasquill_class": "D", "impact_zones": [ // готові полігони від АПК { "zone": "primary", "polygon": [[49.44,32.05],[49.52,32.12],[49.48,32.18]] }, { "zone": "secondary", "polygon": [[49.44,32.05],[49.60,32.20],[49.50,32.30]] } ], "forecast_horizon_hours": 6, "severity": "danger" // "alert"|"danger"|"emergency" }

Вихідний API: вебхуки для зовнішніх систем

POST {webhook_url} // POST на зовнішній URL при запуску сценарію { "event": "scenario_launched", "scenario_id": "hydro-2026-05-31-001", "type": "hydro", "severity": "emergency", "zones_notified": 12, // кількість населених пунктів "channels_used": ["ivr","sms","push","fm","sirens"], "launched_at": "2026-05-31T14:22:00Z", "operator": "auto", // або login оператора "audit_5w": { "who": "auto", "what": "flood_level_exceeded", "when": "2026-05-31T14:22:00Z", "where": "Лука-Мелешківська ТГ", "why": "level=325cm > threshold=300cm" } }

Підтримувані АПК та протоколи

АПК / Система Протокол Тип даних
АДІС (хімічна обстановка)REST/JSONЗони ураження, концентрації
ЕКОМ / ГармоніяREST/JSONПолігони зон, прогноз
Держгідромет / АІУС РС НСREST/JSON, XMLРівень води, прогноз паводку
Власний розрахунок LegionЗа методикою ДСНС (НХР)
Будь-яка система з CAPCAP v1.2Стандартне тривожне повідомлення

Для підключення АПК до Legion потрібен Bearer-токен (видається КСВТ) і мережева доступність між системами. Підтримується мультитенантність: кілька АПК можуть надсилати дані одночасно для різних зон відповідальності.