JSON-RPC
RPCプロトコルをJSON形式でリクエスト、レスポンスを表現する
ステートレスで軽量
何が嬉しい
エンドポイントとなるURLは一つでも済むので
RESTより楽にURL設計ができる
何を実行するかはmethodで指定すればいい
JSONなので普通のサーバー、クライアントで使える
複数のリクエストをまとめて送るBatchという機能がある
デメリット
フォーマット
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では標準ライブラリとして提供されている
参考