13. Обмен и интеграции
Платформа предоставляет REST API для интеграции с внешними системами, а также механизмы для вызова внешних API из процедур.
13.1. Определение API-эндпоинта
API Интеграция
API_ЭНДПОИНТ "/api/v1/zayavka"
МЕТОД POST
ПАРОЛЬ "secret123"
ОБЪЕКТ Процедура.ОбработатьЗаявку
КОНЕЦ_ЭНДПОИНТА
API_ЭНДПОИНТ "/api/v1/clients"
МЕТОД GET
ОБЪЕКТ Клиенты
ПАРОЛЬ "secret123"
КОНЕЦ_ЭНДПОИНТА
КОНЕЦ_API
13.2. GET-эндпоинт с фильтрацией
API_ЭНДПОИНТ "/api/v1/orders"
МЕТОД GET
ОБЪЕКТ ЗаказНаряд
ПАРОЛЬ "secret123"
ФИЛЬТР "Клиент = {{client_id}}"
КОНЕЦ_ЭНДПОИНТА
13.3. POST-эндпоинт со схемой валидации
СХЕМА_ДАННЫХ СхемаЗаявки
ПОЛЕ name СТРОКА ОБЯЗАТЕЛЬНОЕ
ПОЛЕ phone СТРОКА ОБЯЗАТЕЛЬНОЕ
ПОЛЕ description СТРОКА
КОНЕЦ
API_ЭНДПОИНТ "/api/v1/zayavka"
МЕТОД POST
ОБЪЕКТ Процедура.СоздатьЗаявку
ПАРОЛЬ "secret123"
СХЕМА СхемаЗаявки
КОНЕЦ_ЭНДПОИНТА
13.4. Вызов внешнего API из процедуры (HTTP_ЗАПРОС)
ПРОЦЕДУРА ОтправитьУведомление
ВЫЧИСЛИТЬ Данные = {
"chat_id": "123456789",
"text": "Новый заказ!"
}
ПОПЫТКА
ВЫЧИСЛИТЬ Ответ = HTTP_ЗАПРОС(
"POST",
"https://api.telegram.org/botTOKEN/sendMessage",
Данные
)
ВЫВЕСТИ "Уведомление отправлено"
ИСКЛЮЧЕНИЕ Ошибка
ВЫВЕСТИ "Ошибка: " + Ошибка
КОНЕЦ_ПОПЫТКИ
КОНЕЦ_ПРОЦЕДУРЫ
13.5. Схемы данных для валидации
СХЕМА_ДАННЫХ СхемаКонтрагента
ПОЛЕ Наименование СТРОКА ОБЯЗАТЕЛЬНОЕ
ПОЛЕ Телефон СТРОКА
ПОЛЕ Email СТРОКА
ПОЛЕ ИНН СТРОКА
КОНЕЦ
13.6. Пример процедуры для API
ПРОЦЕДУРА СоздатьЗаявкуИзAPI
ВЫЧИСЛИТЬ Данные = ПОЛУЧИТЬ(args, 0)
# Ищем клиента
ВЫЧИСЛИТЬ Клиент = НАЙТИ("Клиенты", "Телефон = '" + Данные.phone + "'")
ЕСЛИ ПУСТО(Клиент) ТО
ВЫЧИСЛИТЬ Клиент = СОЗДАТЬ("Клиенты")
ЗАПОЛНИТЬ Клиент.Наименование = Данные.name
ЗАПОЛНИТЬ Клиент.Телефон = Данные.phone
ВЫЧИСЛИТЬ _ = ЗАПИСАТЬ(Клиент)
КОНЕЦ
# Создаём заказ
ВЫЧИСЛИТЬ Заказ = СОЗДАТЬ("ЗаказНаряд")
ЗАПОЛНИТЬ Заказ.Клиент = Клиент.id
ЗАПОЛНИТЬ Заказ.Статус = "Заявка с сайта"
ЗАПОЛНИТЬ Заказ.Описание = Данные.description
ВЫЧИСЛИТЬ _ = ЗАПИСАТЬ(Заказ)
ВОЗВРАТ {"status": "success", "order_id": Заказ.id}
КОНЕЦ_ПРОЦЕДУРЫ
13.7. Параметры в пути
API_ЭНДПОИНТ "/api/v1/clients/:id"
МЕТОД GET
ОБЪЕКТ Процедура.ПолучитьКлиента
ПАРОЛЬ "secret123"
КОНЕЦ_ЭНДПОИНТА
ПРОЦЕДУРА ПолучитьКлиента
ВЫЧИСЛИТЬ ID = ПОЛУЧИТЬ(args, 0)
ВЫЧИСЛИТЬ Клиент = ПРОЧИТАТЬ("Клиенты", ID)
ВОЗВРАТ Клиент
КОНЕЦ_ПРОЦЕДУРЫ