AWZ: Api на вебхуках

0

Разработчик: Andrew Zahalski

Установлено: 50 - 99

Обновлено: 26.08.2024

Адаптирован под мобильные устройства

Совместим с редакциями Битрикс: «Первый сайт» / «Старт» / «Стандарт» / «Малый бизнес» / «Бизнес» / «Энтерпрайз» / «Корпоративный портал» / «Интернет-магазин + CRM» /

Модуль позволяет организовать 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.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.]+\\\\\\\");
};