PHPackages                             sancho2804/rest\_client - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. sancho2804/rest\_client

ActiveLibrary[HTTP &amp; Networking](/categories/http)

sancho2804/rest\_client
=======================

PHP client for REST API services

1.0.5(5y ago)0251Apache-2.0PHPPHP ^7.0

Since May 4Pushed 5y ago1 watchersCompare

[ Source](https://github.com/sancho2804/rest_client)[ Packagist](https://packagist.org/packages/sancho2804/rest_client)[ RSS](/packages/sancho2804-rest-client/feed)WikiDiscussions master Synced 6d ago

READMEChangelog (6)DependenciesVersions (8)Used By (1)

Клиент для REST API на PHP
==========================

[](#клиент-для-rest-api-на-php)

Многие сервисы с которыми приходится иметь дело, имеют на борту REST API. Это очень удобно для разработчиков. Для работы с апи необходимо разрабатывать модуль для решения конкретных задач. Я предлагаю упростить задачу используя **"карты REST API сервисов"**. Такие карты оформляются в формате **JSON**. Но класс можно использовать и для обращения к методам сервиса и напрямую.

---

Стартуем , я начну стрелять:
----------------------------

[](#стартуем--я-начну-стрелять)

**Устанавливаем через composer:**

```
composer require sancho2804/rest_client
```

Используя автозагрузку по namespace создаем объект класса:

```
include_once 'vendor/autoload.php';
use sancho2804\rest_client\main;
$yandex_disk=new main('https://cloud-api.yandex.net:443/v1/','OAuth',$token);
```

Первый параметр ссылка на REST API нужного вам сервиса. Именно к этой ссылке будут добавляться указываемые в дальнейшем пути. Если авторизация для сервиса не требуется, то 2 и 3 параметр можно опустить. 2 параметр обычно это любая строка либо Bearer

---

Доступные методы:
-----------------

[](#доступные-методы)

### rest\_client::set\_service($service\_name)

[](#rest_clientset_serviceservice_name)

Подгружает карту сервиса по ее имени. Расширение указывать не нужно. Карты хранятся в src/maps/&lt; service\_name &gt;.json

Аргументы:

1. имя сервиса/имя файла карты

**Возвращаемые значения: void**

```
$yandex_disk->set_service('yandex_disk');
```

### rest\_client::exec($alias, $post\_fields, \[$arg1, ....\])

[](#rest_clientexecalias-post_fields-arg1-)

Вызывает метод сервиса описанный в карте.

Аргументы:

1. **$alias** - алиас по которому вызывается метод сервиса
2. **$post\_fields** - по умолчанию null. Если передать массив, то он передастся в POST заголовок
3. **любое кол-во аргументов необходимых для выполнения запроса к методу сервиса**

**Возвращаемые значения:** по умолчанию - результат ответа в виде массива. Если $rest\_client::$result\_is\_json установлен в false, то сырой результат.

```
$yandex_disk->exec('dir_info',null,'/');
```

### rest\_client::${method\_name}($post\_fields, \[$arg1, ....\])

[](#rest_clientmethod_namepost_fields-arg1-)

Вызов метода сервиса как метод класса.

Аргументы:

1. **$post\_fields** - по умолчанию null. Если передать массив, то он передастся в POST заголовок
2. **любое кол-во аргументов необходимых для выполнения запроса к методу сервиса**

**Возвращаемые значения:** по умолчанию - результат ответа в виде массива. Если rest\_client::$result\_is\_json установлен в false, то сырой результат.

```
$result=$yandex_disk->dir_info(null, '/');
//Идентично $yandex_disk->exec('dir_info',null,'/');
```

### rest\_client::get($path, $post\_fields)

[](#rest_clientgetpath-post_fields)

Делает запрос к методу сервиса по HTTP методу GET.

Аргументы:

1. **$path** - относительный путь до метода
2. **$post\_fields** - по умолчанию null. Если передать массив, то он передастся в POST заголовок

**Возвращаемые значения:** по умолчанию - результат ответа в виде массива. Если rest\_client::$result\_is\_json установлен в false, то сырой результат.

```
$yandex_disk->get('disk/resources?path=/');
```

### rest\_client::save($path, $post\_fields)

[](#rest_clientsavepath-post_fields)

Делает запрос к методу сервиса по HTTP методу POST.

Аргументы: **такие же как и в методе get**

**Возвращаемы значения: такие же как и в методе get**

```
$yandex_disk->save('disk/resources/copy?from=/file1.php&path=/file2.php');
```

### rest\_client::delete($path, $post\_fields)

[](#rest_clientdeletepath-post_fields)

Делает запрос к методу сервиса по HTTP методу DELETE.

Аргументы: **такие же как и в методе get**

**Возвращаемы значения: такие же как и в методе get**

```
$yandex_disk->delete('disk/resources?path=/file2.php');
```

### rest\_client::update($path, $post\_fields)

[](#rest_clientupdatepath-post_fields)

Делает запрос к методу сервиса по HTTP методу PATCH.

Аргументы: **такие же как и в методе get**

**Возвращаемы значения: такие же как и в методе get**

```
$yandex_disk->update('disk/resources?path=/file2.php&body=...');
```

### rest\_client::create($path, $post\_fields)

[](#rest_clientcreatepath-post_fields)

Делает запрос к методу сервиса по HTTP методу PUT.

Аргументы: **такие же как и в методе get**

**Возвращаемы значения: такие же как и в методе get**

```
$yandex_disk->create('disk/resources/publish?path=/file2.php');
```

### rest\_client::options($path, $post\_fields)

[](#rest_clientoptionspath-post_fields)

Делает запрос к методу сервиса по HTTP методу OPTIONS.

Аргументы: **такие же как и в методе get**

**Возвращаемы значения: такие же как и в методе get**

```
//Пока не встречал его в работе, но он как суслик
```

---

Формат JSON-карты:
------------------

[](#формат-json-карты)

```
{
    "dir_info":{
        "method":"GET",
        "uri":"disk/resources?path={::}&offset={::}&limit={::}&sort={::}&fields={::}",
        "require":[0]
    },
    ...
}
```

- **dir\_info** - алиас по которому происходит обращение к сервису
- **method** - метод HTTP. GET, POST, DELETE, PATCH, PUT, OPTIONS
- **uri** - путь до метода REST API. Конструкции вида {::} будут заменены на аргументы из метода rest\_client::exec в том порядке, в котором они передаются
- **require** - Указываются номера конструкции {::}, которые нужно обязательно передать. **Отсчет идет с 0**

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~34 days

Recently: every ~42 days

Total

6

Last Release

2033d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/60216371?v=4)[soClose](/maintainers/sancho2804)[@sancho2804](https://github.com/sancho2804)

---

Top Contributors

[![sancho2804](https://avatars.githubusercontent.com/u/60216371?v=4)](https://github.com/sancho2804 "sancho2804 (40 commits)")

### Embed Badge

![Health badge](/badges/sancho2804-rest-client/health.svg)

```
[![Health](https://phpackages.com/badges/sancho2804-rest-client/health.svg)](https://phpackages.com/packages/sancho2804-rest-client)
```

###  Alternatives

[friendsofsymfony/rest-bundle

This Bundle provides various tools to rapidly develop RESTful API's with Symfony

2.8k73.3M319](/packages/friendsofsymfony-rest-bundle)[php-http/discovery

Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations

1.3k309.5M1.2k](/packages/php-http-discovery)[nyholm/psr7

A fast PHP7 implementation of PSR-7

1.3k235.4M2.4k](/packages/nyholm-psr7)[pusher/pusher-php-server

Library for interacting with the Pusher REST API

1.5k94.8M293](/packages/pusher-pusher-php-server)[spatie/crawler

Crawl all internal links found on a website

2.8k16.3M52](/packages/spatie-crawler)[react/http

Event-driven, streaming HTTP client and server implementation for ReactPHP

78126.4M414](/packages/react-http)

PHPackages © 2026

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