JSON-RPC
RPCプロトコルをJSON形式でリクエスト、レスポンスを表現する
ステートレスで軽量
何が嬉しい
エンドポイントとなるURLは一つでも済むのでRESTより楽にURL設計ができる 何を実行するかはmethodで指定すればいい
JSONなので普通のサーバー、クライアントで使える
複数のリクエストをまとめて送るBatchという機能がある
デメリット
フォーマット
request
jsonrpc: プロトコルのバージョン
method: 実行するメソッド名
params: 引数
id: 送受信の識別id。responseに同じ値が入る
↓substract(42, 23)をサーバーで実行して返すような感じ
code:json
{
"jsonrpc": "2.0",
"method": "subtract",
"id": 1
}
response
result: 返り値
code:json
{
"jsonrpc": "2.0",
"result": 19,
"id": 1
}
Notification
idを省略すると、通知とみなされる
サーバーからレスポンスは返ってこない
いつ使うん
Goでは標準ライブラリとして提供されている
参考