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)44.7k2MITPHP

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 1w ago

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

34

—

LowBetter than 74% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 82.4% 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

2689d 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)")[![mnlght](https://avatars.githubusercontent.com/u/34452808?v=4)](https://github.com/mnlght "mnlght (2 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.6k10](/packages/helsingborg-stad-municipio)[andreyryabin/sprint.editor

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

506.8k](/packages/andreyryabin-sprinteditor)[pressbooks/pressbooks-book

This theme is named after Canadian media theorist Marshall McLuhan, who coined the phrase “the medium is the message.” It is designed for academic writing and is also suitable for fiction. Headings are set in Cormorant Garamond, and body type is set in Lora.

226.7k](/packages/pressbooks-pressbooks-book)

PHPackages © 2026

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