inurosen / jsonrpc-server
JSON-RPC 2.0 Server Library for PHP
Installs: 2 905
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: ^6.4 || ^7.0
README
Requirements
- PHP 7.1+
Installation
composer require inurosen/jsonrpc-server
Usage
1. Configure
OOP style
class FooService { public function bar($params) { return $params; } } MethodRegistry::register('hello.world', 'FooService@bar', HelloWorldValidator::class);
Closure style
MethodRegistry::register('hello.world', function ($params) { return 'Hello world!'; }, HelloWorldValidator::class);
2. Execute
$jsonRpcServer = new \Inurosen\JsonRPCServer\JsonRPCService(); $jsonRpcServer->call('{"jsonrpc": "2.0", "method": "hello.world", "params": {"param1": 1, "param2": 2}, "id": 1}'); $result = $jsonRpcServer->getResponse()->toString(); echo $result;
Result will be a JSON-RPC result.
3. Validate
Validators must implement Inurosen\JsonRPCServer\Interfaces\ValidatorInterface
.
Extending Inurosen\JsonRPCServer\Validator
and assigning rules is enough.
public function rules(): array { return [ 'id' => [ \Inurosen\JsonRPCServer\Rules\RequiredRule::class, \Inurosen\JsonRPCServer\Rules\IntegerRule::class, ], ]; }
Or if your params is not object but a scalar or simple value
public function rules(): array { return [ \Inurosen\JsonRPCServer\Rules\RequiredRule::class, \Inurosen\JsonRPCServer\Rules\IntegerRule::class, ]; }