- Remote procedure call protocol을 Json으로 간단히 표현한 것이다. (XML-RPC와 유사하다.) Data type과 command로 구성되어 있고 알람(요청만하고 서버에 결과값을 받지 않는 것)과 다중 호출이 가능하다. (이전에 호출한 것에대해 상관없이?)
JSON-RPC is a remote procedure call protocol encoded in JSON. It is a very simple protocol (and very similar to XML-RPC), defining only a handful of data types and commands. JSON-RPC allows for notifications (data sent to the server that does not require a response) and for multiple calls to be sent to the server which may be answered out of order.
Version 2.0
Procedure call with positional parameters:
--> {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": 1} <-- {"jsonrpc": "2.0", "result": 19, "id": 1}
--> {"jsonrpc": "2.0", "method": "subtract", "params": [23, 42], "id": 2} <-- {"jsonrpc": "2.0", "result": -19, "id": 2}
Procedure call with named parameters:
--> {"jsonrpc": "2.0", "method": "subtract", "params": {"subtrahend": 23, "minuend": 42}, "id": 3} <-- {"jsonrpc": "2.0", "result": 19, "id": 3}
--> {"jsonrpc": "2.0", "method": "subtract", "params": {"minuend": 42, "subtrahend": 23}, "id": 4} <-- {"jsonrpc": "2.0", "result": 19, "id": 4}
Notification:
--> {"jsonrpc": "2.0", "method": "update", "params": [1,2,3,4,5]}
--> {"jsonrpc": "2.0", "method": "foobar"}
Procedure call of non-existent procedure:
--> {"jsonrpc": "2.0", "method": "foobar", "id": 10} <-- {"jsonrpc": "2.0", "error": {"code": -32601, "message": "Procedure not found."}, "id": 10}
Procedure call with invalid JSON:
--> {"jsonrpc": "2.0", "method": "foobar", "params": "bar", "baz"] <-- {"jsonrpc": "2.0", "error": {"code": -32700, "message": "Parse error"}, "id": null}
Procedure call with invalid JSON-RPC:
--> [1,2,3] <-- [ {"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null}, {"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null}, {"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null} ]
--> {"jsonrpc": "2.0", "method": 1, "params": "bar"} <-- {"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null}
'Development > Web & Server' 카테고리의 다른 글
[Play Framework] Json RPC Client구현하기 (0) | 2013.11.11 |
---|---|
[Spring Framework] Json RPC Server 구현하기 (0) | 2013.11.11 |
Redis란.... (0) | 2013.11.04 |
ZooKeeper란.. (0) | 2013.11.04 |
Apache 로드 벨런싱 & Tomcat 세션 클러스터링 (0) | 2013.11.01 |