Модуль позволяет организовать API на вебхуках на стороне сайта.
Позволяет выводить любые сущности с БУС в Битрикс24 на редактирование с поддержкой групповых действий.
Приложение в Битрикс24 маркете -
https://www.bitrix24.ru/apps/app/awz.smartbag/С помощью модуля возможно реализовать и любое другое API.
Доступны:1)
ORM сущности \\Bitrix\\Main\\ORM\\Data\\DataManager
- с поддержкой полей IntegerField, StringField, DatetimeField, DateField, FloatField, EnumField, ExpressionField, BooleanField, Relations\\Reference (3 уровня)
- возможно переопределение логики api (без учета настроек метода)
2)
Контроллеры \\Bitrix\\Main\\Engine\\Controller
- экспериментально без поддержки фильтров
3)
Контроллеры \\Awz\\BxOrm\\Api\\Scopes\\Controller (абстракция над \\Bitrix\\Main\\Engine\\Controller содержащая дополнительные scope и реализующая проверку прав доступа к методу API)
- рекомендуемый вариант для реализации кастомных API
Подробности в документации -
https://github.com/zahalski/awz.bxorm
Документация -
https://github.com/zahalski/awz.bxormДля работы административных страниц, необходим установленный модуль AWZ: Конструктор списков.
Маркетплейс -
https://marketplace.1c-bitrix.ru/solutions/awz.admin/GitHub -
https://github.com/zahalski/awz.admin1) Установите модуль через систему обновлений
2) Добавить методы для API (Настройки - AWZ: Api на вебхуках - Методы API).
Доступны контроллеры и ORM сущности, наследники \\Bitrix\\Main\\Engine\\Controller, \\Awz\\BxOrm\\Api\\Scopes\\Controller, \\Bitrix\\Main\\ORM\\Data\\DataManager
3) Настроить методы API
4) Добавить вебхук и отметить доступные методы
5) В списке вебхуков будут доступны ссылки на методы API
6) По желанию настроить router, например, для доступа по url:
мой_сайт_ру/api/hook/<ид_хука>/<токен_хука>/<метод>
<?php
use Bitrix\\Main\\Routing\\RoutingConfigurator;
use Awz\\BxOrm\\Api\\Controller;
return function (RoutingConfigurator $routes) {
$routes->any(\'/api/hook/{app}/{key}/methods\',
[Controller\\Hook::class, \'methods\']
)->where(\'app\', \'[0-9]+\')->where(\'key\', \'[0-9a-zA-Z]+\');
$routes->any(\'/api/hook/{app}/{key}/{method}\',
[Controller\\Hook::class, \'call\']
)->where(\'app\', \'[0-9]+\')
->where(\'key\', \'[0-9a-zA-Z]+\')
->where(\'method\', \'[0-9a-zA-Z.]+\');
};
|
Поддержка оказывается по контактам:
Предпочитаемый способ связи:
Открытая линия поддержки -
https://zahalski.bitrix24.by/online/opensourceДополнительные способы связи:
Telegram: @andrew_zahalski
Email: info<гав>zahalski<точка>dev