====== API Повітряних тривог ======
REST API, повітряних тривог на території України. Без ключів, без авторизації, без реєстрації, SMS та здачі аналізів. Аби довго не гратись та не розбирати потім купу складних структур даних, було прийнято рішення проксювати існуючі розрізнені джерела даних і звести їх до якогось одного уніфікованого та компактного формату. Також в такій важливій справі, хочеться трішки редандансі й мінімізувати навантаження на оригінальні джерела даних, аби пересічні розробники мали можливість просто та елегантно нотифікувати користувачів, про те, що їм намагаються принести "русскій мір".
Тому ось, маєте, можете користуватись:
https://ubilling.net.ua/aerialalerts/
ну або напряму без SSL:
http://ubilling.net.ua/aerialalerts/
Наразі таймаут кешування сирих даних з боку нашої імплементації - **3 секунди**.\\
На жаль, враховуючи неадекватність окремих мавпочок, які не можуть як в програмування так і в здоровий глузд, швидкість звернень до API було лімітовано на межі 2 rps (два запити на секунду) для кожного хоста, з 2024-02-13. У випадку перевищення цього ліміту (а, що курва мало б змінитись частіше ніж двічі на секунду?!) ви отримаєте http error 429.
Формат відповідей у вигляді JSON простий, наскільки це можливо:
{{:undefined:aerialalertsapi0_2.png|}}
У випадку, якщо ви знаходитесь під дією важких наркотиків, вам може захотітись, отримувати дані в форматі XML. Чомусь... Робиться це за допомогою передачі додаткового GET параметру **xml**, власне так:
https://ubilling.net.ua/aerialalerts/?xml=true
{{:undefined:aerialalertsxml_2.png|}}
====== Як користуватись? ======
Наочний приклад, як це можна використовувати на практиці:
$aerialAlertsApi = new OmaeUrl('http://ubilling.net.ua/aerialalerts/');
$rawJson = $aerialAlertsApi->response();
$alertsData = json_decode($rawJson, true);
if (isset($alertsData['states'])) {
foreach ($alertsData['states'] as $eachStateName => $stateParams) {
if ($stateParams['alertnow']) {
show_error($eachStateName);
} else {
show_success($eachStateName);
}
}
}
====== Джерела даних ======
Також ви можете явно вказати джерело, з якого бажаєте отримати дані, за допомогою GET параметру **source** власне якось так:
https://ubilling.net.ua/aerialalerts/?source=[джерело_даних]
Наразі підтримуються наступні джерела даних:
* **default** (можна не вказувати взагалі) - за замовчуванням, те "яке живіше" (рекомендовано).
* **skog** - локальне, Mørk Skogen.
* **klimenko** - від Vadym Klymenko
* **jaam** - з серверу даних JAAM
* **aiu** - сервісу alerts.in.ua
* **ual** - сервісу ukrainealarm.com
У випадку, якщо джерело явно не вказано - буде обрано найбільш живе ;)
{{:alertold.png?32 |}}
**УВАГА!** У будь-якому випадку, не варто сприймати це API як стовідсотково надійне та надто на нього покладатись, використовуючи його для прийняття якихось важливих рішень. Чисто інформаційно-статистична штука загалом. Користуйтесь офіційними джерелами інформації!
====== Сирі дані ======
Також є можливість отримати сирі необроблені дані у форматі будь-якого джерела, передавши (можна порожній) GET параметр **raw** наприклад якось так:
https://ubilling.net.ua/aerialalerts/?source=skog&raw
чи якось так:
https://ubilling.net.ua/aerialalerts/?source=klimenko&raw
та отримати якийсь такий результат:
{{:arialskograw.png|}}
Варто зауважити, що дані буде повернуто в ключі **raw** замість **states** і вони будуть саме що сирими, та необробленими і не зведеними до якогось одного, уніфікованого формату. За для розуміння структури цих даних звертайтесь до документації відповідного джерела даних. Там же можете пошукати собі дані по районах, чи територіальних громадах.
====== Тривожна мапа ======
А ще ви можете отримати +- актуальну тривожну мапу локацій де русня намагається нас вбити, за допомогою якогось отакого запиту:
https://ubilling.net.ua/aerialalerts/?map=true
{{:aerialalertsmap.jpg|}}
Або ж отакою чудовою нічною:
https://ubilling.net.ua/aerialalerts/?map=nightmode
{{:aerialalertsnightmodemap.png|}}
Хоча можливо вам більше сподобається червоно-чорний стиль:
https://ubilling.net.ua/aerialalerts/?map=rednight
{{:aerialalertsrednightmap.png|}}
Також ви можете отримати, за бажанням мапу в форматі WebP:
https://ubilling.net.ua/aerialalerts/?map=webp
====== Веб-тривожність ======
Також ви можете отримати веб-версію тривожності за допомогою необов'язкового (можна порожнього) GET параметру **webalerts**, якось так:
https://ubilling.net.ua/aerialalerts/?webalerts
що виглядатиме приблизно так
{{:aerialskogenwebalerts.png|}}
====== Посилання ======
* [[https://t.me/air_alert_ua|Telegram-канал "Повітряна Тривога"]]
* [[https://vadimklimenko.com/map/|єМапа by Vadim Klimenko]]
* [[https://github.com/and3rson/raid|Air Raid Alerts API by Andrew Dunai]]
* [[https://github.com/nightflyza/skogen|Mork Skogen API]]
* [[https://jaam.net.ua/|Сервер даних JAAM]]
* [[https://alerts.in.ua/|alerts.in.ua]]
* [[https://www.ukrainealarm.com/|ukrainealarm.com]]
* [[https://t.me/DeTryvogaBot|Telegram-бот "Де тривога?" - @DeTryvogaBot]]