Каталог решений

Покупка продления купона

Продолжительность:
Общая сумма:
0 руб.
Ваш запрос успешно отправлен!
Условия использования
Продлить
Продолжить покупки

Prominado: REST

Модуль для организации REST API в проектах на 1С-Битрикс.Возможности модуля: - Создание методов API с помощью событий- Вывод данных в формате json/xml- Ограничение методов API по HTTP-методамПланы на будущее:- Добавление прав доступа с бесконечными ключами- Добавление OAuth2 протокола

Описание

Технические данные

Опубликовано:
07.02.2018
Версия:
1.0.2
Установлено:
50 - 99 раз
Подходящие редакции:
«Первый сайт», «Старт», «Стандарт», «Малый бизнес», «Эксперт», «Бизнес», «Корпоративный портал», «Энтерпрайз»
Адаптивность:
Нет
Поддержка Композита:
Нет

Описание

Модуль для организации REST API в проектах на 1С-Битрикс.

Возможности модуля:
- Создание методов API с помощью событий
- Вывод данных в формате json/xml
- Ограничение методов API по HTTP-методам

Планы на будущее:
- Добавление прав доступа с бесконечными ключами
- Добавление OAuth2 протокола
Отзывы (0)
Пока что нет отзывов.
Обсуждения (0)
Здесь пока никто ничего не написал. Будьте первым.
Установка

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

Лицензионное соглашение

Другие решения разработчика

Решение добавлено в корзину

Перейдите в корзину и оформите заказ или продолжите покупки
Перейти в корзину
Продолжить покупки