Модуль позволяет организовать 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
Позволяет выводить любые сущности с БУС в Битрикс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.admin
1) Установите модуль через систему обновлений
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/<ид_хука>/<токен_хука>/<метод>
Для работы административных страниц, необходим установленный модуль AWZ: Конструктор списков.
Маркетплейс - https://marketplace.1c-bitrix.ru/solutions/awz.admin/
GitHub - https://github.com/zahalski/awz.admin
1) Установите модуль через систему обновлений
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.]+\\\\\\\"); }; |