[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 服务器
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
整了半天还不是HTTP协议,利弊持平吧
为什么我跑了下,请求不到该路由