2017 © Pedro Peláez
 

bitrix-d7-module api

Ease create ajax response

image

webpractik/api

Ease create ajax response

  • Tuesday, May 15, 2018
  • by Иван
  • Repository
  • 2 Watchers
  • 4 Stars
  • 72 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 4 Versions
  • 29 % Grown

The README.md

webpractik/api

Простой интерфейс для написания api в CMS Bitrix., (*1)

Выносит все обработчики в пространство /api/, заставляя разработчиков писать унифицированные обработчики., (*2)

Решение для тех кому надоело писать компоненты-обработчики, плодить кучу файлов в doc_root аля в папке /ajax и кто не внедрил себе роутер из laravel/symphony., (*3)

⚠️ Deprecated

Рекомендуется использовать

  • Нативные контроллерые Bitrix
  • Контроллеры Laravel/Symphony

Данный модуль для старых проектов или для обратной совместимости., (*4)

Установка в CMS Bitrix

  1. composer require webpractik/api
  2. Установка модуля в админке

Процесс установки

В процессе установки модуль - Добавляет в корень DocRoot api-router.php - Устанавливает маршрут /api/ в urlrewrite.php - Устанавливает компонент в local/components/webpractik/api/, (*5)

Написание обработчиков

  1. Регистрируем маршруты $arUrlTemplates в компоненте webpractik:api в local.
class ApiRouterExtended extends \Webpractik\Api\ApiRouter
{
    public $sefVariables   = [];
    public $arUrlTemplates = [
        '\MySite\Lk\Response\Resubmit' => 'application/resubmit/',
    ];
    public $arLoadModules  = [
        'webpractik.main'
    ];
}

В модули передаем те которые нужны для autoload (@todo fixme), (*6)

  1. Добавляем обработчик \MySite\Lk\Response\Resubmit наследуя его от \Webpractik\Api\Response
Method Description
public function handler(){} главная логика
public function validate() логика проверок. При
public $method GET/POST - ожидаемый тип запроса
public $request \Bitrix\Main\HttpRequest https://dev.1c-bitrix.ru/api_d7/bitrix/main/request/index.php
public $response \Webpractik\Api\JsonResponse

Json example

{
  "status": true,
  "errors": []
}

Интерфейс JsonResponse

Method Description
addError($strError) добавление ошибки
addParam($name, $value) добавление параметра в json
setSuccess/setFail установка status true/false
send json_encode + die()
sendSuccess setSuccess + send()
sendFail($strError) addError($strError) + send()
haveErrors() true|false
getErrors() array
getResponse() array

Example

class FormRegister extends \Webpractik\Api\Response
{
    public function handler() {
        if (!$this->register()) {
            $this->response->sendFail('Ошибка регистрации')
        }
        $this->response
            ->addParam('password', $this->password)
            ->setSuccess()
            ->send();
    }

    public function validate() {
        if (!$this->request->getPost('email')) {
            $this->response->addError('Не введен email');
        }
        if (!$this->request->getPost('login')) {
            $this->response->addError('Не введен логин');
        }

        return $this->response->haveErrors();
    }
}

пример абстрактный, просто чтобы показать возможности, (*7)

The Versions

15/05 2018

dev-master

9999999-dev

Ease create ajax response

  Sources   Download

MIT

The Requires

 

by Иван Поддубный (north.leshiy)

api bitrix d7

15/05 2018

1.1.1

1.1.1.0

Ease create ajax response

  Sources   Download

MIT

The Requires

 

by Иван Поддубный (north.leshiy)

api bitrix d7

31/01 2018

1.1

1.1.0.0

Ease create ajax response

  Sources   Download

MIT

The Requires

 

by Иван Поддубный (north.leshiy)

api bitrix d7

20/11 2017

1.0.0

1.0.0.0

Ease create ajax response

  Sources   Download

MIT

The Requires

 

by Иван Поддубный (north.leshiy)

api bitrix d7