onnov/json-rpc-server
Composer 安装命令:
composer require onnov/json-rpc-server
包简介
json rpc server
README 文档
README
Json RPC 2.0 server
Install
Composer (recommended) Use Composer to install this library from Packagist: onnov/json-rpc-server
Run the following command from your project directory to add the dependency:
composer require onnov/json-rpc-server
Alternatively, to load the dev-master branch, add the dependency directly to the composer.json file.
composer.json
"repositories": [
{
"type": "git",
"url": "git@github.com:onnov/json-rpc-server.git"
}
],
"require": {
"onnov/json-rpc-server": "dev-master"
},
Use
Для автозагрузки в symfony нужно добавить:
Onnov\JsonRpcServer\JsonRpcHandler:
autowire: true
в файл services.yaml
Авторизация
Json RPC server не занимается авторизацией. Если нужна авторизация, авторизуйте пользователя любым способом, результат авторизации передайте в метод JsonRpcHandler::run, 3-м параметром $resultAuth в виде true или false.
Данный флаг предусмотрен только для того, что бы Json RPC server выдал стандартный ответ при отсутствии авторизации.
Если авторизация не требуется, просто передайте true 3-м параметром $resultAuth.
Если API использует авторизацию, но несколько методов должны быть доступны без авторизации, такие методы как login или authCheck эти методы можно перечислить в 4-м параметре $methodsWithoutAuth в виде массива:
$methodsWithoutAuth = ['login', 'authCheck'];
Эти методы будут доступны независимо от авторизации.
Фабрика с методами
Создаем фабрику с помощью Интерфейса ApiFactoryInterface в методе getSubscribedServices перечисляем все используемые классы
public static function getSubscribedServices(): array
{
return [
'Bankruptcy' => Bankruptcy::class,
'Bankrupt' => Bankrupt::class,
];
}
Запуск обработчика json rpc
Создаем объект JsonRpcHandler передаем в метод run( ApiFactoryInterface $apiFactory, string $json, bool $resultAuth, array $methodsWithoutAuth = [], bool $responseSchemaCheck = false )
метод возвращает строку json
use Onnov\JsonRpcServer\JsonRpcHandler;
use Onnov\JsonRpcServer\Model\ResultAuthModel;
$authRes = (new ResultAuthModel())->setSuccess(true);
$apiFactory = new ApiFactory()
$server = new JsonRpcHandler();
$res = $server->run(
$apiFactory,
$json,
$resultAuth,
$methodsWithoutAuth
$responseSchemaCheck
)
JSON RPC методы
API Методы создаются с помощью Интерфейса ApiMethodInterface.php.
Каджый класс с используемыми методами должен быть описан в ApiFactory.
jsonRPC запрос может выглядеть так:
{
"jsonrpc": "2.0",
"method": "Auth.check",
"params": null,
"id": 911
}
Ответ формируется в зависимости от того, что вернет метод API.
Все, что возвращают методы попадает в result
Validation
统计信息
- 总下载量: 5.09k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-01-04