json-rpc笔记

文章目录

json-rpc是一种基于json的rpc(远程调用)协议。

示例

比较好理解,基于官网示例直接就明白了。

python 复制代码
--> {"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}

通用

请求报文-模板

jsonrpc # jsonrpc版本,填2.0就行 必填

method # 方法名,对应 必填

id # 请求id 注:非必填`,如果不填表示是通知形式,不需要任何返回

param # 相当于常规json的请求体

模板:

json 复制代码
{
    "jsonrpc": "2.0",
    "method": "具体的方法名",
    "params": 具体的json请求体,可以是对象或数组
    "id": 请求id


}

返回报文

返回报文-模板(成功)

模板:

json 复制代码
{
    "jsonrpc": "2.0",
    "result": 返回结果,
    "id": 请求id
}
返回报文-模板(报错)
json 复制代码
{
    "jsonrpc": "2.0",
    "error": {
        "code": 具体错误码,
        "message": "具体错误信息",
        "data": "具体错误体,可以是任何类型,所以不能简单的用json转换,建议做类型判断",
    },
    "id": "具体请求id"
}

通知形式(容易忽略掉这种调用方式)

上面也提到了,如果不传id是一种特殊的请求形式,表示通知,不需要返回。

请求报文:

没有id。

返回报文:

不需要响应,也没有返回报文。

写代码时这里应该特殊处理下,如果按常规接收响应的话代码会报错。

其他

文档

官网地址(很简陋):

https://www.jsonrpc.org/specification

相关推荐
柳鲲鹏1 小时前
老电脑X99安装WIN11 26H2总结、问题解决办法汇总
笔记
sunoo-2294 小时前
【ARM嵌入式学习笔记第十天】i.MX6ULL eLCDIF控制器驱动RGB LCD全解析(硬件原理+寄存器配置+裸机代码)
arm开发·笔记·学习
晚安code4 小时前
RPC 到底是什么:微服务内部调用的首选,以及它藏起来的三个坑
微服务·rpc
听风若依5 小时前
数据在内存中的存储-纸面笔记整理
c语言·笔记
xiaominngtongxue5 小时前
从中职技能节看实训教学的组织逻辑
笔记
杨逢昌工厂6S管理6 小时前
109-杨逢昌车间管理负熵循环:三环体系持续输出负熵的机制解析
经验分享·笔记·职场和发展·学习方法
weixin_440730506 小时前
内置函数、json文本、pickle二进制
开发语言·python·json
inferno6 小时前
SVN学习笔记(二)
笔记·学习·svn
海绵宝宝转agent7 小时前
leetCode100算法开源笔记分享
笔记·算法
91刘仁德8 小时前
Linux网络编程从入门到实战:UDP/TCP协议与socket编程全解析
linux·网络·笔记·tcp/ip·udp