Своя реализация контроллера
Штатный REST контроллер инфоблока \Bitrix\Iblock\Controller\DefaultElement
включает в себя следующие методы:
Метод | Описание |
---|---|
getElementEntityAllowedList | Разрешенные поля сущности инфоблока \Bitrix\Iblock\ElementTable::getMap . Они же выбираются по умолчанию, если в запросе не указан select . |
getAllowedList | Список разрешенных полей для выборки. По умолчанию разрешены поля инфоблока из метода getElementEntityAllowedList и все свойства инфоблока. Если вы хотите использовать другие поля и особенно отношения, то необходимо перечислить здесь все идентификаторы. |
getAction | Реализует выборку одного элемента по ID. |
listAction | Реализует выборку нескольких элементов. |
Допускается как создание полностью своего контроллера, так и наследование от штатного с переопределением нужных методов.
После описания своего класса контроллера необходимо зарегистрировать его в
Сервис локаторе
Сервис локатор (локатор служб) – это шаблон проектирования для удобной работы с сервисами приложения.
Подробнее в курсе Разработчик Bitrix Framework.
с идентификатором iblock.element.{IBLOCK_API_CODE}.rest.controller
, где {IBLOCK_API_CODE} – значение Символьного кода API (API_CODE) вашего инфоблока. Например: iblock.element.OfficialNews.rest.controller
.
По умолчанию контроллеры работают только в контексте REST. С версии 20.100.200 доступен публичный неограниченный доступ к данным инфоблока через механизм AJAX-контроллеров. Для этого следует очистить все префильтры:
class MyElement extends \Bitrix\Iblock\Controller\DefaultElement { protected function getDefaultPreFilters() { return []; } }