2017 © Pedro Peláez
 

bitrix-d7-module rest

Simple REST router for Bitrix

image

prominado/rest

Simple REST router for Bitrix

  • Wednesday, February 7, 2018
  • by saundefined
  • Repository
  • 2 Watchers
  • 0 Stars
  • 3 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

prominado.rest

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

Модуль обрабатывает адреса вида http://my_website.ru/rest/method.name, (*2)

Чтобы зарегистрировать обработчик, необходимо зарегистрировать обработчик:, (*3)

<?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, (*4)

Код обработчика:, (*5)

<?php

namespace Prominado\Events;

use Prominado\Rest\Request;
use Prominado\Rest\RestException;

class Rest
{
    public function dataGet(Request $request)
    {
        $userId = $request->getQuery('id');

        if(!$userId) {
            throw new RestException('No user_id passed');    
        }

        $request->withStatus(200);
        $request->withHeader('X-Token', 'prominado-web-access');

        return ['user' => ['NAME' => 'Prominado']];
    }

    public function dataUpdate(Request $request)
    {
        $userId = $request->getQuery('id');
        $fields = $request->getQuery('fields');

        if(!$userId) {
            throw new RestException('No user_id passed');    
        }

        if(!$fields) {
            throw new 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;
    }
}

Roadmap

  • [x] Метод для проверки авторизации
  • [ ] Права доступа (без ограничения по времени)
  • [ ] Права доступа (oauth2)

The Versions

07/02 2018

dev-master

9999999-dev

Simple REST router for Bitrix

  Sources   Download

MIT

The Requires

 

by Sergey Panteleev

rest bitrix

01/02 2018

1.0.2

1.0.2.0

Simple REST router for Bitrix

  Sources   Download

MIT

The Requires

 

by Sergey Panteleev

rest bitrix

01/02 2018

1.0.1

1.0.1.0

Simple REST router for Bitrix

  Sources   Download

MIT

The Requires

 

by Sergey Panteleev

rest bitrix

01/02 2018

1.0.0

1.0.0.0

Simple REST router for Bitrix

  Sources   Download

MIT

The Requires

 

by Sergey Panteleev

rest bitrix