Корзина
0
Описание
Технические данные
- Опубликовано:
- 07.02.2018
- Версия:
- 1.0.2
- Установлено:
- 100 - 499 раз
- Подходящие редакции:
- «Первый сайт», «Старт», «Стандарт», «Малый бизнес», «Бизнес», «Корпоративный портал», «Энтерпрайз»
- Адаптивность:
- Нет
- Поддержка Композита:
- Нет
- Совместимо с Сайты24
- Нет
Пользовательское соглашение
Описание
Модуль для организации 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