Сервис API решает две разные задачи
1) Прием данных из вне
2) Отправка данных во вне, по событию
Прием данных извне - задача достаточно простая, просто на скрипт по адресу http://erp-platforma.com:8033/api_in2.php необходимо отправить данные в определенном формате, в соответствии с настроенной конфигурацией. Например, http://erp-platforma.com:8033/api_in2.php?hash=6361674568fe7345e345f6576662eb3fd475799e40f0b58cdb8e05249e3d9003&id_api=31&n1=18&n2=текст
Пройдя необходимую проверку на допустимый IP, валидность ключа и т.п. система исполнит процедуру в API IN под номером 31 с входящими параметрами и данные добавятся в базу данных.
Отправка данных вовне - это уже задача достаточно сложная. Каким-то образом, по событию в базе данных компании, должен сформироваться пакет и отправится за пределы этой БД, вовне, на сервер компании в скрипт, который примет и обработает эти данные.
Для решения данной задачи, во встроенном языке программирования, реализована позиция API OUT встраиваемая в триггер, которая в зависимости от условий может записать данные во временную таблицу, из которой данные штатными средствами попадут в выделенную компании базу данных для API, и оттуда уже ретранслируются на указанный внешний скрипт. API IN - прием данных из вне
Создание API IN:
Указывается название API и связанная с ним процедура.
При получении информации данный номер API заполнит процедуру полученными параметрами
и произведет ее выполнение в базе данных клиента
Рассмотрим пример, где в API №31 передается параметр №1 = 18 и параметр №2 = "текст"
Состав входящих данных в пакет: - hash - уникальных хеш компании
- id_api - номер API
- n1,n2,....nN - входящие параметры. Равны количеству выходных параметров процедуры связанной с API
Пример пакета: api_in2.php?hash=636167c898fe7345e345f5f66662eb3fd475799e40f0b58cdb8e05249e3d9003&id_api=31&n1=18&n2=текст
В данном примере в API №31 передается параметр №1 = 18 и параметр №2 = "текст"
Ответ системы:
- [ERR] - ошибка
- [STR] - количество строк в пакете
- [GO] - строка с ответом
Формат ответа [ERR]
- Идентификатор
- Код ошибки
- Описание ошибки
Пример: [ERR];2;Не найден API;
Возможные варианты:- [ERR];1;Некорректный HASH;
- [ERR];2;Не найден API;
- [ERR];3;Превышена длинна строки параметра №...
- [ERR];4;Ошибка при выполнении процедуры;
- [ERR];5;IP 100.115.145.25 нет в списке разрешенных;
Формат ответа [STR]- Идентификатор
- Количество строк
- Описание
[STR] - всегда первая строка в пакете при положительном ответе системы.
В ней содержатся данные по дальнейшему разбору пакета
Пример: [STR];85;Количество строк пакета
Формат ответа [GO]- Иденитификатор
- Порядковый номер строки
- Количество позиций в строке
- Данные (позиции разделяются ";", формат CSV)
Пример: [GO];9;2;67;Ведущий инженер по сети передачи данных;
Здесь:
[GO] - идентификатор,
9 - порядковый номер строки, т.е. строка номер 9,
2 - количество позиций,
67 - значение позиции #1,
"Ведущий инженер по сети передачи данных" - значение позиции №2 API OUT - отправка данных во вне по событию
Создается API OUT достаточно просто. Вводите название и нажимаете на кнопку "Добавить API OUT". Теперь созданный API OUT можно использовать в триггере. Смысл данного действия в том, что данные идентификаторы указываются в триггерах и передаются получателю.
Получателю данная информация необходима для понимания, по какому алгоритму обрабатывать
пришедшую информацию.
Как создать вывод данных в триггере таблицы, описано здесь: Позиция API OUT
Конфигурация API OUT - данная конфигурация указывает системе куда передавать информацию.
Можно создавать несколько конфигураций и в различных триггерах указывать передачу
информации по различным адресатам.
- Название
- CURLOPT_USERPWD - Если на принимающем веб сервере стоит авторизация по .htaccess, указывается логин:пароль
- CURLOPT_URL - Указывается адрес веб сервера, исполняемый скрипт и параметры идентификации
Пример, где в позиции триггера, указываются API OUT и конфигурации API OUT
|