WEB开发中,使用JSON-RPC好还是RESTful API好?
网友解答: RPC (远程过程调用)简单理解即把别人的系统当作自己的系统调用。优点:(1)把别人的系统当作自己的调用(2)一般是长连接,请求访问效率高。缺点:(1)需引用被调用系统的接口
RPC (远程过程调用)简单理解即把别人的系统当作自己的系统调用。
优点:(1)把别人的系统当作自己的调用
(2)一般是长连接,请求访问效率高。
缺点:(1)需引用被调用系统的接口包,调用的外部系统越多,本系统将越来越庞大
(2)编程语言有较大限制,一般只能调用当前语言的RPC。
具体实例:一般为webservice和dubbo
REST简单理解通过HTTP请求访问接口
优点:(1)即插即用,只需按照指定规则,不需要再引用其它的接口包
(2)跨语言,不同的编程语言都可以通过HTTP交互
缺点:(1)HTTP连接,效率较低。
具体实例:一般为HTTP和SpringCloud
Dubbo和SpringCloud的比较
从上图看,各有优缺点,我选择SpringCloud的REST,基于以下原因
网友解答:JSON-RPC已经是过去式了,不能很好的忙住现在的快熟开发。。。。
而这个RESTFul,其中的REST实际上应该是ReST:Representational State Transfer的缩写的,具体解释起来应该是的:
Representational的意思是表现形式的。
State Transfer的意思是状态转换的。
这个所以RESTful的含义是资源通过状态转换的一种表现形式的。
具体一点说的,资源通过URL来定位,这个资源通过POST,GET,PUT,PATCH,DELETE等方法来操作的,然后完成操作后通过HTTP的状态码2xx/4xx来完成状态的转换的的。
这个其中的GET方法表示获取URL对应的资源的,POST/PUT方法表示新建1条资源的,则PATCH方法表示对URL对应资源的部分内容进行修改,DELETE表示删除URL对应的资源的。
所以因此需要访问RESTful API的场景的:
需要对数据进行灵活管理的Web页面,很好的支持Web开发。
手机客户端的开发的,很好的API。
最好在最佳实践中,应当还应该返回与此操作相关的其他操作的,根据具体需求处理请求方式!!!