Провайдер
Провайдер вызывает разрешённые публичные методы PHP-классов. Требует включённых роутов провайдера и access-токена в Authorization: Bearer <token>.
Адрес provider указан относительно пути интерфейса API.
Методы
| Запрос | Назначение | Параметры |
|---|---|---|
| GET provider | Описание класса и разрешённых методов | class — обязательно; method — по необходимости |
| POST provider | Выполнение метода | class, method — обязательно; parameters, callback — по необходимости |
class — полное имя класса с пространством имён. method — имя публичного метода.
parameters — массив позиционных аргументов или объект именованных аргументов метода.
Нестатический метод требует конструктора без обязательных аргументов.
GET возвращает result.class и result.methods либо result.method. POST — result.data и HTTP 201. Без технического конверта поля находятся в корне ответа.
Разрешённые методы
| Класс | Методы по умолчанию |
|---|---|
Bitrix\Main\Localization\Loc | getCurrentLang |
Bitrix\Currency\CurrencyManager | getBaseCurrency, getCurrencyList |
CCurrencyRates | ConvertCurrency, GetConvertFactorEx |
Классы валют доступны при наличии соответствующего модуля Битрикса.
Для расширения наследуйте Native\Api\Controller\Provider\Provider, переопределите getMethodsAllowed() или getClassesAllowed() и подключите describe и execute в карте.
getMethodsAllowed() возвращает карту «класс → методы» с точными именами классов и методов.
getClassesAllowed() разрешает класс или пространство имён: Vendor\PublicApi охватывает
Vendor\PublicApi\Items, но не Vendor\PublicApiExtra.
Сравнение не учитывает регистр и начальную обратную косую черту имени класса.
Запреты из getClassesDenied() и getMethodsDenied() имеют приоритет над разрешениями.
Если оба разрешающих списка пусты, все вызовы запрещены. Для точечного доступа используйте список методов:
разрешение пространства имён распространяется и на классы, добавленные в него позднее.
Права на данные проверяет вызываемый код.
Результаты выборок
callback — публичный метод результата БД без обязательных аргументов. По умолчанию: fetch для старого API Битрикса, fetchRaw для D7.
При нескольких строках возвращается список, при одной — строка выборки, при пустой выборке возможен false. Другие callback-методы вызываются один раз.
Массивы и скалярные значения возвращаются без преобразования.
Примеры запросов: cURL, JavaScript, PHP.