generated at
JSON-RPC


RPCを実現するプロトコルの一つ
RPCプロトコルをJSON形式でリクエスト、レスポンスを表現する
ステートレスで軽量
V8 debugger protocolにインスパイアされたもの
と、Erich Gamma氏が言っている ref

何が嬉しい
エンドポイントとなるURLは一つでも済むのでRESTより楽にURL設計ができる
何を実行するかはmethodで指定すればいい
JSONなので普通のサーバー、クライアントで使える
複数のリクエストをまとめて送るBatchという機能がある
WebSocketなどと組み合わせ使える

デメリット
RESTより覚えることが増える

フォーマット
request
jsonrpc: プロトコルのバージョン
method: 実行するメソッド名
params: 引数
id: 送受信の識別id。responseに同じ値が入る
substract(42, 23) をサーバーで実行して返すような感じ
json
{ "jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": 1 }
response
result: 返り値
json
{ "jsonrpc": "2.0", "result": 19, "id": 1 }

Notification
idを省略すると、通知とみなされる
サーバーからレスポンスは返ってこない
いつ使うん



Goでは標準ライブラリとして提供されている


参考