PHPackages                             webpractik/api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. webpractik/api

AbandonedArchivedBitrix-d7-module[API Development](/categories/api)

webpractik/api
==============

Ease create ajax response

1.2(7y ago)64.6k2MITPHP

Since Nov 20Pushed 3y ago1 watchersCompare

[ Source](https://github.com/webpractik/webpractik.api)[ Packagist](https://packagist.org/packages/webpractik/api)[ RSS](/packages/webpractik-api/feed)WikiDiscussions master Synced today

READMEChangelog (5)Dependencies (1)Versions (7)Used By (0)

webpractik/api
==============

[](#webpractikapi)

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

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

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

⚠️ Deprecated
=============

[](#️-deprecated)

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

[](#рекомендуется-использовать)

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

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

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

[](#установка-в-cms-bitrix)

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

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

[](#процесс-установки)

В процессе установки модуль

- Добавляет в корень DocRoot `api-router.php`
- Устанавливает маршрут `/api/` в `urlrewrite.php`
- Устанавливает компонент в `local/components/webpractik/api/`

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

[](#написание-обработчиков)

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)

2. Добавляем обработчик \\MySite\\Lk\\Response\\Resubmit наследуя его от \\Webpractik\\Api\\Response

MethodDescriptionpublic function handler(){}главная логикаpublic function validate()логика проверок. Приpublic $methodGET/POST - ожидаемый тип запросаpublic $request`\Bitrix\Main\HttpRequest` [https://dev.1c-bitrix.ru/api\_d7/bitrix/main/request/index.php](https://dev.1c-bitrix.ru/api_d7/bitrix/main/request/index.php)public $response`\Webpractik\Api\JsonResponse`Json example
------------

[](#json-example)

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

Интерфейс JsonResponse
----------------------

[](#интерфейс-jsonresponse)

MethodDescriptionaddError($strError)добавление ошибкиaddParam($name, $value)добавление параметра в jsonsetSuccess/setFailустановка status true/falsesendjson\_encode + die()sendSuccesssetSuccess + send()sendFail($strError)addError($strError) + send()haveErrors()truegetErrors()arraygetResponse()array### Example

[](#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();
	}
}
```

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

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 93.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~125 days

Total

5

Last Release

2643d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/795fe39d39b73487a8fff1d6b85d50de3a2d8b4e321661722427e51476091e15?d=identicon)[Иван](/maintainers/%D0%98%D0%B2%D0%B0%D0%BD)

---

Top Contributors

[![north-leshiy](https://avatars.githubusercontent.com/u/5521833?v=4)](https://github.com/north-leshiy "north-leshiy (14 commits)")[![penta-kai](https://avatars.githubusercontent.com/u/41238897?v=4)](https://github.com/penta-kai "penta-kai (1 commits)")

---

Tags

apibitrixd7

### Embed Badge

![Health badge](/badges/webpractik-api/health.svg)

```
[![Health](https://phpackages.com/badges/webpractik-api/health.svg)](https://phpackages.com/packages/webpractik-api)
```

###  Alternatives

[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.5k10](/packages/helsingborg-stad-municipio)[andreyryabin/sprint.editor

Редактор для контент-менеджеров

506.4k](/packages/andreyryabin-sprinteditor)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
