moaction / jsonrpc-bundle
Jsonrpc 服务器和客户端 Symfony2 扩展包
v1.1
2013-12-20 11:04 UTC
Requires
- php: >=5.3.3
- moaction/jsonrpc-client: ~1.4
- moaction/jsonrpc-server: ~1.1
- symfony/framework-bundle: ~2.1
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-24 01:33:02 UTC
README
Symfony2 扩展包,实现了 JSON-Rpc 2.0 协议
http://www.jsonrpc.org/specification
用法
- 创建一个继承自 \Moaction\JsonrpcBundle\Controller\JsonrpcController 的控制器
- 为 'execute' 方法添加路由
- 添加一些带有 'Method' 后缀的公共方法
- 享受魔法吧!
服务器示例
控制器
class ApiController extends \Moaction\JsonrpcBundle\Controller\JsonrpcController { public function getUserMethod($id) { return 'User id is ' . $id; } public function getUserPostMethod($userId, $postId) { return array( 'userId' => $userId, 'postId' => $postId ); } }
路由
AcmeBundle_jsonrpc_api: pattern: /api defaults: { _controller: AcmeBundle:Api:execute }
请求示例
--> {"jsonrpc": "2.0", "method": "getUser", "params": {"id": 23}, "id": 1}
<-- {"jsonrpc": "2.0", "id": 1, "result": "User id is 23"}
--> {"jsonrpc": "2.0", "method": "getUserPost", "params": {"userId": 23, "postId": 456}, "id": 2}
<-- {"jsonrpc": "2.0", "id": 2, "result": {"userId": 23, "postId": 456}}
客户端示例
关于用法,请查看 moaction/jsonrpc-client 的示例。
客户端类存在于参数 moaction_jsonrpc.client.class 中
您可以使用客户端类参数添加对任何服务的依赖。不要忘记为服务添加 URL 参数
services.yml
services:
acme_hello.api.client:
class: %moaction_jsonrpc.client.class%
arguments:
- "http://example.com/api/jsonrpc"