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

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

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

Примеры: 

  • получение уведомления о нехватке товара на складе Озон или Wildberries
  • изменились данные по контрагенту в ЕРГЮЛ 
  • любое изменение, которое можно отследить по 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, анализировать ответ и по определенным факторам определять кого надо уведомить об этой ситуации. 

 

 

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK