giddy
Зарегистрирован: 28.01.2022 Сообщения: 8 Откуда: Санкт-Петербург
|
Добавлено: Вт Янв 09, 2024 11:20 Заголовок сообщения: Интеграция с web-сервисами (REST API) |
|
|
Поздравляю всех присутствующих с наступившим на нас новым рабочим годом
Хочу поделиться опытом online интеграции БОСС-Кадровика с web-сервисами по RESTful API непосредственно из "родной" среды на платформе RP Server - без внешних библиотек, .NET сборок и т.п. Вроде на форуме подобной темы еще не было - возможно, кому-нибудь пригодится. А опыт показал, что объединенные X-языком VBScript и T-SQL - вполне самодостаточный инструмент для решения данного класса задач.
Не будем углубляться в теорию, по REST API информации в интернете более чем достаточно. На практике, наш основной инструмент для взаимодействия с web-сервисами - объект Msxml2.ServerXMLHTTP. Этот объект является компонентом встроенной в Windows библиотеки MSXML, т.о. он уже есть в системе и готов к работе. С его помощью можно получать и передавать данные по http(s) методами GET и POST.
Наиболее популярный формат данных, используемый web-сервисами для обмена информацией - JSON. Нам и тут повезло: в MS SQL Server 2016 и выше есть набор функций для работы с этим форматом, благодаря чему мы можем сравнительно легко как прочитать полученные от web-сервера данные, так и экспортировать данные из нашей базы в формат JSON для отправки их на web-сервер.
Простой пример получения от web-сервиса данных в JSON с последующей их обработкой:
Код: | vb{
set xhr = CreateObject("Msxml2.ServerXMLHTTP")
xhr.Open "GET", "http://jsonplaceholder.typicode.com/posts", False ' формируем синхронный GET запрос к тестовому серверу
xhr.Send ' отправляем запрос
ResponseJSON = xhr.responseText ' сохраняем ответ сервера в переменную
};
alias _json == vb.ResponseJSON;
browser{SELECT * FROM OPENJSON(_json[''])},,OPENJSON без WITH;
browser{SELECT * FROM OPENJSON(_json['']) WITH (userId int, id int, title varchar(255), body varchar(255))},,OPENJSON c WITH;
|
Если у вас на рабочем месте есть интернет - запустите код в окне отладки БОССа. Сработал? Поздравляю - вы уже владеете методом!
С темой я впервые столкнулся чуть более 2х лет назад, когда встала задача научить БОСС-Кадровик работать с "умным" сканером документов Promobot, ПО которого представляет собой локальный WEB-сервер с REST API. Что из этого получилось можно посмотреть в описании/инструкции к функциональному блоку https://yadi.sk/i/PkPA25IRumf3-A
А в прошлом году посетила идея прикрутить к БОСС-Кадровику бота Telegram, стал его потихоньку "пилить" и допилил до состояния, в котором уже не стыдно показать. Приглашаю познакомиться с BOSS Telegram bot (демо-версия): https://t.me/BOSS_demo_bot
Про Роскомнадзор и персональные данные всё знаю, написал об этом в разделе "О проекте - Интернет и безопасность". Бота делал больше из спортивного интереса, но все же надеюсь, что ему найдется практическое применение. В любом случае, пока возился - узнал для себя много нового, а знания и опыт, как известно, лишними не бывают |
|