PHPackages                             bpartner/jsonrpc - 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. bpartner/jsonrpc

ActiveLibrary[API Development](/categories/api)

bpartner/jsonrpc
================

JSON RPC server

3.1(2y ago)080MITPHPPHP ^8.0CI failing

Since Feb 26Pushed 2y agoCompare

[ Source](https://github.com/bpartner/jsonrpc)[ Packagist](https://packagist.org/packages/bpartner/jsonrpc)[ Docs](https://github.com/bpartner/jsonrpc)[ RSS](/packages/bpartner-jsonrpc/feed)WikiDiscussions master Synced 6d ago

READMEChangelog (1)Dependencies (3)Versions (23)Used By (0)

JSON-RPC 2.0 server for Laravel
===============================

[](#json-rpc-20-server-for-laravel)

[![Latest Version on Packagist](https://camo.githubusercontent.com/1975516a77ca08cef1aa00a9dfaa1aeb4f3d2fd2e1662ac6dad2c802a43e5609/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f62706172746e65722f6a736f6e7270632e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/bpartner/jsonrpc)[![Total Downloads](https://camo.githubusercontent.com/c3e7093bb4e251b1b4e1d50799fd424ee7de5dfbd95a6cedbb5a582eb05548ee/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f62706172746e65722f6a736f6e7270632e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/bpartner/jsonrpc)

Simple JSON-RPC 2.0 server for Laravel, without batch request.

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require bpartner/jsonrpc

php artisan vendor:publish --tag=config
```

### Configure

[](#configure)

in `config/jsonrpc.php` set namespace and Bearer token (default 1234567890)

If Bearer token not work, add to your .htaccess file this rule

```
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

```

Basic Usage
-----------

[](#basic-usage)

```
php artisan make:rpc MyHandler
```

After creating handler, in handle method put your business logic and return array with response data.

```
public function handle(): array
{
    $myData = MyBusinessLogicClass::make($this->params);

    return ['data' => $myData];
}
```

Send POST request to `/jsonrpc/v1/endpoint` in Json RPC 2.0 standard with Bearer Token.

```
{
    "jsonrpc": "2.0",
    "method": "myHandler",
    "params": {
        "param1": "param1",
        "param2": {
            "param3": 123,
        }
    },
    "id": "abracadabra"
}
```

for validate input parameters use `rule` method in handler.

```
protected function rule(): array
{
    return [
        'param1' => 'require|string',
        'param2.param3' => 'require|numeric'
    ];
}
```

Advanced Usage
--------------

[](#advanced-usage)

You can use any route, middleware and guards for your rpc endpoint.

1. Disable default route in `config/jsonrpc.php`
2. Create your custom route
3. Create your middleware
4. Create your controller and use RpcService

Middleware example

```
class AuthToken
{
    public function handle(Request $request, Closure $next)
    {
        if ($request->header('x-auth-token') !== config('jsonrpc.token')) {
            return  response()->json([
                'status' => 'error',
                'code' => 401,
                'message' => 'Unauthorized',
            ]);
        }
        return $next($request);
    }
}
```

Controller example

```
namespace App\Http\Controllers

use Bpartner\Jsonrpc\RpcFormRequest;
use Bpartner\Jsonrpc\RpcRequest;
use Bpartner\Jsonrpc\RpcServiceInterface;
use Illuminate\Routing\Controller;

class MyContoller extends Controller
{
    public function __invoke(RpcFormRequest $request, RpcServiceInterface $rpcService)
    {
        return $rpcService->run();
    }
}
```

Middleware
----------

[](#middleware)

Create own middleware for any RpcHandler

```
 protected string|array $middlewares = 'guest';
//or
 protected string|array $middlewares = [
    MyMiddleware::class,
    SecondMiddleware::class
];
```

Important
---------

[](#important)

This package not support Batch request. For example, this request not supported:

```
[
    {"jsonrpc": "2.0", "method": "sum", "params": [1,2,4], "id": "1"},
    {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]},
    {"jsonrpc": "2.0", "method": "subtract", "params": [42,23], "id": "2"},
    {"foo": "boo"},
    {"jsonrpc": "2.0", "method": "foo.get", "params": {"name": "myself"}, "id": "5"},
    {"jsonrpc": "2.0", "method": "get_data", "id": "9"}
]
```

Credits
-------

[](#credits)

- [Alexander Zinchenko](https://github.com/bpartner)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity71

Established project with proven stability

 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 ~71 days

Recently: every ~275 days

Total

21

Last Release

856d ago

Major Versions

1.4.1 → 2.02020-12-22

2.4.3 → 3.02022-03-08

PHP version history (2 changes)1.0PHP ^7.2

3.0PHP ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/41556cf93fd356db054066226b59fd32e9c20686db7de5cdc689dc204e5d7208?d=identicon)[bpartner](/maintainers/bpartner)

---

Top Contributors

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

---

Tags

jsonrpc

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/bpartner-jsonrpc/health.svg)

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

###  Alternatives

[sergeyfast/eazy-jsonrpc

PHP JSON-RPC 2.0 Server/Client Implementation with SMD &amp; Swagger support

6164.2k](/packages/sergeyfast-eazy-jsonrpc)[drlecks/simple-web3-php

Web3 library in PHP

7641.6k2](/packages/drlecks-simple-web3-php)[tochka-developers/jsonrpc

JsonRpc extension for Laravel

2733.8k1](/packages/tochka-developers-jsonrpc)[lao-liu/laravel-hprose

Hprose client/server providers for Laravel 5.x or Lumen 5.x

201.2k](/packages/lao-liu-laravel-hprose)

PHPackages © 2026

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