大型网站多少钱,360网站推广,文字生成图片,网站建设实施进度与资源管理文章目录 JSON-RPC什么是JSON-RPCJSON-RPC java开源实现JSON-PRC go开源实现JSON-RPC 和 Restful 都属于什么#xff1f;RPC、JSON-RPC和HTTP区别 以太坊使用json-rpc#xff1f;JSON-RPC和gRPCWEB开发中#xff0c;使用JSON-RPC好#xff0c;还是RESTful API好#xff1f… 文章目录 JSON-RPC什么是JSON-RPCJSON-RPC java开源实现JSON-PRC go开源实现JSON-RPC 和 Restful 都属于什么RPC、JSON-RPC和HTTP区别 以太坊使用json-rpcJSON-RPC和gRPCWEB开发中使用JSON-RPC好还是RESTful API好 JSON-RPC
官网 https://www.jsonrpc.org/ (译) JSON-RPC 2.0 规范(中文版) https://www.w3cschool.cn/ycuott/z7er3ozt.html
什么是JSON-RPC
JSON是一种轻量级的数据交换格式它可以表示数值、字符串、序列及名/值对集合。
JSON-RPC是一种无状态的轻量级的远程程序调用协议。叫 JSON 的原因是因为返回值是 JSON。
JSON-RPC协议中的客户端一般是为了向远程系统请求执行某个方法。客户端向实现了JSON-RPC协议的服务端发送请求多个输入参数能够通过数组或者对象传递到远程方法这个远程方法也能返回多个输出数据具体是什么当然要看具体的方法实现。
所有的传输都是单个对象用JSON格式进行序列化。请求包含三个特定属性
method方法是等待调用的远程方法名字符串类型params参数对象类型或者是数组向远程方法传递的多个参数值id任意类型值用于和最后的响应进行匹配也就是这里设定多少后面响应里这个值也设定为相同的
demo:
curl -X POST \-H Content-Type: application/json \--data { jsonrpc: 2.0, method: Filecoin.ChainHead, params: [], id: 3 } \http://127.0.0.1:1234/rpc/v0响应的接收者必须能够给出所有请求以正确的响应。响应也有三个属性
result结果是方法的返回值如果方法执行时出现了错误那么这个值必须为空error错误当出现错误时返回一个特定的错误编码没有错误就为空值id就是请求带的那个id值用于匹配
需要注意到有一些场景下是不用返回值的比如只对客户端进行通知由于不用对请求的id进行匹配所以这个id就是不必要的置空或者直接不要了。
总结JSON-RPC比较符合直观格式也相对宽松RESTFUL太死板、SOAP太麻烦那就是JSON RPC
JSON-RPC java开源实现
官网https://github.com/briandilley/jsonrpc4j
JSON-PRC go开源实现
使用json-prc的一个小demo https://github.com/shepf/star-tools
JSON-RPC 和 Restful 都属于什么
答都属于 Web Service 模型该模型用于帮助人们解决应用程序与服务器传递数据的问题。
而基于该模型的解决方案大体上有三类即
SOA 模型面向消息RPC 模型面向方法REST 模型面向资源其中 RPC 模型又分成三类 XML-RPC JSON-RPC SOAP WSDL [SOAP 本质上是 XML-RPC 的升级版]
已经没有人用 SOA 模型解决问题了。
接着我们再了解一点那就是 RPC 模型的这三种解决方案现在还有人用的也只剩下 JSON-RPC 一种了。
总结 目前主要使用 JSON-RPC 、REST。
RPC、JSON-RPC和HTTP区别
【基础】RPC、JSON-RPC和HTTP区别 参考URL: https://blog.csdn.net/chenguolinblog/article/details/90607551
以太坊使用json-rpc
在以太坊中使用 JSON-RPC 协议可以与以太坊节点进行交互例如发送交易、查询区块链数据、订阅事件等操作。以太坊节点提供了一个 JSON-RPC 接口客户端可以通过发送符合以太坊 JSON-RPC 协议规范的请求来与节点进行通信。
在具体实现方面以太坊节点使用了不同的 JSON-RPC 库或框架来实现 JSON-RPC 协议。最常用的是 Go 语言实现的 Geth 节点它使用自己的 JSON-RPC 实现。此外还有其他以太坊客户端如 Parity、OpenEthereum它们也使用自己的 JSON-RPC 实现。此外还有一些第三方的 JSON-RPC 库可供使用如 web3.js 和 web3.py它们提供了对以太坊 JSON-RPC 接口的封装和更易于使用的 API。 总结以太坊使用 JSON-RPC 协议作为与以太坊节点进行通信的标准协议具体的 JSON-RPC 实现取决于所使用的以太坊客户端或第三方库。 JSON-RPC和gRPC
JSON-RPC和gRPC都是远程过程调用RPC框架但它们在底层技术、数据序列化格式和使用场景上有所不同。在构建区块链时选择JSON-RPC还是gRPC取决于几个因素。 JSON-RPC JSON-RPC是一种轻量级的RPC协议使用JSONJavaScript对象表示法进行数据序列化。 它简单易懂广泛支持各种编程语言。 JSON-RPC通常在HTTP或WebSocket上实现适用于基于Web的应用程序。它支持各种数据类型并且可读性强这在开发和调试过程中非常有帮助。 JSON-RPC非常适合强调互操作性和易于实现的场景而不是性能和效率。 gRPC gRPC是由Google开发的高性能RPC框架。它使用Protocol Buffersprotobuf作为默认的数据序列化格式。 Protocol Buffers是一种二进制序列化格式可以高效紧凑地表示结构化数据。 gRPC支持多种编程语言并提供双向流式传输、流量控制和身份验证等功能。它使用HTTP/2作为传输协议实现了高效的多路复用、头部压缩和服务器推送等特性。 gRPC非常适合强调性能、可扩展性和高效网络通信的场景例如微服务架构。 总结选择JSON-RPC还是gRPC取决于具体需求。如果注重互操作性和易用性且对性能和效率要求不高可以选择JSON-RPC。如果注重性能、可扩展性和高效的网络通信尤其是在微服务架构等场景下可以选择gRPC。 WEB开发中使用JSON-RPC好还是RESTful API好
WEB开发中使用JSON-RPC好还是RESTful API好 参考URL: https://www.zhihu.com/question/28570307?sortcreated