[Laravel 扩展推荐] JSON-RPC Server for Laravel


JSON RPC Server是一个使用Laravel框架构建 JSON-RPC 2.0 规范API的包。同时这个包也集成了一个简单已用的轻量级的远程过程调用协议:

namespace App\Http\Procedures;

use Sajya\Server\Procedure;

class TennisProcedure extends Procedure
{
    /**
     * name参数用于定义过程类名
     */
    public static string $name = 'tennis';

    /**
     * 过程类中的具体执行方法
     *
     * @return string
     */
    public function ping()
    {
        return 'pong';
    }
}

比如上面这样的过程类,你可以用以下路由的方式轻松调用它:

use App\Http\Procedures\TennisProcedure;

Route::rpc('/v1/endpoint', [TennisProcedure::class])
    ->name('rpc.endpoint');

请求这个api的示例如下:

curl 'http://127.0.0.1:8000/api/v1/endpoint' \
  --data-binary '{"jsonrpc":"2.0","method":"tennis@ping","id":1}'

# Result: {"id":"1","result":"pong","jsonrpc":"2.0"}

通过这个包使用JSON-RPC,您还可以通过批量将多个请求组合到一个 JSON 对象中来优化您的应用程序:

[
  {
    "jsonrpc": "2.0",
    "method": "message@create",
    "params": "...",
    "id": 1
  },
  {
    "jsonrpc": "2.0",
    "method": "message@create",
    "params": "...",
    "id": 2
  }
]

这个包还可以轻松构建具有以下特性的 JSON RPC API:

  • 权限验证
  • 程序内的数据验证
  • API 文档生成
  • 程序中的参数绑定解析,包括模型绑定
  • JSON RPC 程序的功能测试
  • Gzip 压缩中间件

您可以在GitHub上了解更多关于此软件包的信息,获取完整的安装说明,并查看版本 source code 。该软件包还提供了快速入门文档 documentation

JSON RPC 服务器
JSON RPC 服务器

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/json-rpc-server...

译文地址:https://learnku.com/laravel/t/61597

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

整了半天还不是HTTP协议,利弊持平吧

7个月前 评论

为什么我跑了下,请求不到该路由

1周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!