Другие модули на выбор

Prominado: REST

Стоимость: руб.
Этот компонент мы сможете использовать только при наличии лицензии. Подходящие редакции:

Получите быструю помощь по покупке, оплате, установке, настройке, продлению и другим вопросам, оставив заявку


Модуль обрабатывает адреса вида 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; } }