Создание системы уведомлений из внешних источников (через API)

Исходная задача

Задача - получать своевременно информацию о каких либо событиях во внешних системах. 

Примеры: 

Таким образом можно построить свою систему уведомлений о событиях, происходящих во внешних системах и оперативно на них реагировать. 

Решение кратко

Решение описано с учетом того, что реализация выполняется на платформе Falcon Space.

1. периодически (например, 1 раз в час) запуск исходящего API запроса к внешней системе 

2. обработка отклика API и проверка на определенные состояния. 

3.  если проверка показывает, что надо отправить уведомление, то создаем уведомление (которое дублируется на телеграм бота, если он подключен и пользователь его инициализировал в своем кабинете). 

Решение с деталями реализации 

1. В /syssp в процедуре hour (falcon_nt_sync_hour) создаем вызов исходящего действия API (по необходимости передаем параметры). 

Пример: 

if(DATEPART(HOUR, GETDATE())=8) begin 
    	select 'apirequest' type, 'apicode1' code
end 

2. В /asapi создаем исходящий метод (с кодом apicode1). 

В процедуре request прописываем детали запроса. Документация по исходящим запросам API.

В процедуре response получает отклик внешней системы в переменной @response (обычно это XML или JSON данные) и преобразуем его в табличную переменную(@t) или временную таблицу (#t). 

На основе данных в этой таблице определяем нужно ли отправлять уведомление или нет. 

Если нужно отправить уведомлеие, то в процедуре repsonse вызываем внешнее действие по уведомлению. См. про внешние действия

Пример кода: 

select 'notification' type, 'text1' text , 'demo1' [to], 'ticketExecutor' typeCode, 'http///' url, 'add111' additional

Заключение

Вот таким простым способом можно по периоду обращаться к внешним API, анализировать ответ и по определенным факторам определять кого надо уведомить об этой ситуации. 

Страница-источник на сайте falconspace.ru