Корзина
0
Описание
Технические данные
- Опубликовано:
- 07.02.2018
- Версия:
- 1.0.2
- Установлено:
- 100 - 499 раз
- Подходящие редакции:
- «Первый сайт», «Старт», «Стандарт», «Малый бизнес», «Бизнес», «Корпоративный портал», «Энтерпрайз»
- Адаптивность:
- Нет
- Поддержка Композита:
- Нет
- Совместимо с Сайты24
- Нет
- Совместимо с PHP 8.1
- Нет
Пользовательское соглашение
Описание
Модуль для организации REST API в проектах на 1С-Битрикс.
Возможности модуля:
- Создание методов API с помощью событий
- Вывод данных в формате json/xml
- Ограничение методов API по HTTP-методам
Планы на будущее:
- Добавление прав доступа с бесконечными ключами
- Добавление OAuth2 протокола
Возможности модуля:
- Создание методов API с помощью событий
- Вывод данных в формате json/xml
- Ограничение методов API по HTTP-методам
Планы на будущее:
- Добавление прав доступа с бесконечными ключами
- Добавление OAuth2 протокола
Отзывы (0)
Обсуждения (1)
Авторизуйтесь , чтобы оставить отзыв или задать вопрос разработчику.
3 марта 2019 19:32
Установка
Модуль обрабатывает адреса вида
http://my_website.ru/rest/method.name |
Чтобы зарегистрировать обработчик, необходимо зарегистрировать обработчик:
<?php $event = \Bitrix\Main\EventManager::getInstance(); $event->addEventHandler('prominado.rest', 'onRestMethodBuildDescription', 'restServiceDescription'); function restServiceDescription() { return [ 'data.get' => [ 'allow_methods' => [], 'callback' => ['\\Prominado\\Events\\Rest', 'dataGet'] ], 'data.update' => [ 'allow_methods' => ['POST'], 'authenticator' => ['\\Prominado\\Events\\Rest', 'isAuthorized'], 'callback' => ['\\Prominado\\Events\\Rest', 'dataUpdate'] ], ]; } |
Указанные выше методы будут доступны по адресам:
http://my_website.ru/rest/data.get |
http://my_website.ru/rest/data.update |
Код обработчика:
<?php namespace Prominado\Events; class Rest { public function dataGet(\Prominado\Rest\Request $request) { $userId = $request->getQuery('id'); if(!$userId) { throw new \Prominado\Rest\RestException('No user_id passed'); } $request->withStatus(200); $request->withHeader('X-Token', 'prominado-web-access'); return ['user' => ['NAME' => 'Prominado']]; } public function dataUpdate(\Prominado\Rest\Request $request) { $userId = $request->getQuery('id'); $fields = $request->getQuery('fields'); if(!$userId) { throw new \Prominado\Rest\RestException('No user_id passed'); } if(!$fields) { throw new \Prominado\Rest\RestException('No fields passed'); } $request->withStatus(200); $request->withHeader('X-Token', 'prominado-web-access'); return ['user' => ['NAME' => 'Prominado']]; } public function isAuthorized(Request $request) { $server = $request->getServer(); preg_match('/Bearer\s(.*)/', $server['REMOTE_USER'], $matches); if ($matches[1]) { return true; } return false; } } |
Поддержка
Решение предоставляется "как есть". Техническая поддержка по решению не предоставляется.
Пожелания и замечания можно писать на panteleev@prominado.ru, либо пулл-реквестить на гитхабе - https://github.com/Prominado-ru/prominado.rest
Пожелания и замечания можно писать на panteleev@prominado.ru, либо пулл-реквестить на гитхабе - https://github.com/Prominado-ru/prominado.rest