json-rpc / server
JSON-RPC 服务器
0.1.0
2022-08-29 21:28 UTC
Requires
- php: ^8.1
Requires (Dev)
- ergebnis/composer-normalize: ^2.28.3
- friendsofphp/php-cs-fixer: ^3.10
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.8.2
- phpstan/phpstan-phpunit: ^1.1.1
- phpunit/phpunit: ^9.5.23
This package is auto-updated.
Last update: 2024-09-29 06:03:22 UTC
README
该库提供遵循2.0规范的JSON-RPC服务器。
不稳定
版本 0.x
不稳定,API可能会更改。
要求
- PHP >=8.1
安装
使用composer安装库
composer require json-rpc/server
使用方法
实现 HandlerResolver
接口以向服务器提供方法处理器。创建服务器并传递处理器解析器。之后,您可以使用 respond
服务器方法调用方法。请求和响应都必须是JSON字符串。如果服务器没有响应,将返回空字符串。
<?php /** * Handler resolver */ final class CustomHandlerResponse implements \JsonRpc\HandlerResolver { /** * @param array<string,\JsonRpc\RequestHandler|\JsonRpc\NotificationHandler> $handlers */ public function __construct(private array $handlers = []) {} public function resolve(string $method) : \JsonRpc\RequestHandler|\JsonRpc\NotificationHandler{ if (!array_key_exists($method, $this->handlers)) { throw new \JsonRpc\MethodHandlerNotFound($method); } return $this->handlers[$method]; } } /** * "sum" method handler */ final class SumMethodHandler implements \JsonRpc\RequestHandler { public function handle(\JsonRpc\Request\Request $request): int { return $request->params[0] + $request->params[1]; } } $request = <<<JSON { "jsonrpc": "2.0", "method": "sum", "params": [1,2], "id": 1 } JSON; $resolver = CustomHandlerResolver([ 'sum' => new SumMethodHandler(), ]); $server = new Server($resolver); $response = $server->respond($request); /** * { * "jsonrpc": "2.0", * "result": 3, * "id": 1 * } */
开发
-
构建开发容器
make buid
-
如有需要,修改
.env
文件。 -
容器中的
sh
make sh
从容器内部,您可以使用各种 make
脚本
make test
— 运行PHPUnit测试。make test-coverage
— 生成./coverage
目录中的代码覆盖率报告。make analyse
— 运行PHPStan静态代码分析。make format
— 运行PHP-CS-Fixer代码格式化工具。make format-preview
— 在格式化之前预览PHP-CS-Fixer输出。