定制 onnov/json-rpc-server 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

onnov/json-rpc-server

Composer 安装命令:

composer require onnov/json-rpc-server

包简介

json rpc server

README 文档

README

Scrutinizer Code Quality

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

https://opis.io/json-schema

统计信息

  • 总下载量: 5.09k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固