restful apiWEB开发中,使用JSON-RPC好,还是RESTful API好

restful api  时间:2022-02-28  阅读:()

WEB开发中,使用JSON-RPC好,还是RESTful API好

JSON-RPC比RESTful API好很多。 ====== 我厌恶restful API如同我厌恶OOP;但与其说我厌恶restful,倒不如说我厌恶鼓吹restful API的一些伪·程序员。 很多鼓吹restful API的程序员,实际上并不理解restful的设计理念,纯粹是在人言亦言,随便看了几篇网文在说restful,自己便也更着鼓吹。 做为一个合格的技术人员,最基础的要求是要对自己所使用的技术有了解,明白各种技术的适用场景,然后因地制宜。 restful首先是要求必须把所有的应用定义成为“resource”,然后只能针对资源做有限的四种操作。 这是对API一个非常糟糕的抽象,有太多现实中需要的API,无法顺当的融入到restful所定义的规范中。 比方说,user login / resetpassword等等。 restful的信徒,他们会说可以根据这个那个规范,把login / password等也纳入为某种资源,然后进行增删改查。这在我看来,纯粹是在解决一些原本不存在,根本不需要解决的问题,纯浪费。 所有的接口,服务器端原本就存在有相应的函数,它们本来就有自身的命名空间,接受的参数、返回值、异常等等。 采用轻便的方式暴露出来即可。 无需把一堆函数重新归纳到“资源”,再削减脑袋把所有的操作都映射为“增删改查”。 对应到web上,rpc的成熟方案非常多,有古老的soap,也有轻量的json rpc。 JSON rpc基本上仅是要求所有的请求必须有msg id,有函数名,然后可定义参数,并且区分返回值与异常;也可定义『命名空间』来对函数模块做划分。 这与大多数语言的模块、函数定义相符,使用起来是非常便利的。 很多json rpc是供web前端ajax调用,若前端调用抽象得当,调用远程API,实际上与调用本地函数无甚区别。 实际上,json rpc也未必需要跟http绑定,即便是在web上,它也可以走web socket,这样子,前端可以使用同一web socket管道批量发送请求,而服务器端乱序返回结果时,前端也可以根据msg id做准确的回调。 websocket,批量调用,乱序返回,这些都可以显著提高API的输出吞吐,这些是在json rpc的设计考量内。 调用更方便,性能也更好,两全其美是完全可能的。 想当然的为了“快”,为了“简单”就必须牺牲别的,这是严重的思维误区。 有些方案,纯粹就是糟糕的方案。 restful API仅适用与业务非常简单的场景,比方说,就是为了提供少量数据表单的增删改查。而这种场景实在是太过简单,实际中几乎找不到。

Letbox(35美元/年),美国洛杉矶VPS终身7折

Letbox 云服务商在前面的文章中其实也有多次介绍,这个服务商其实也算是比较老牌的海外服务商,几年前我也一直有使用过他们家的VPS主机,早年那时候低至年付15-35美元左右的VPS算式比较稀缺的。后来由于服务商确实比较多,而且也没有太多的网站需要用到,所以就没有续费,最近这个服务商好像有点活动就躁动的发布希望引起他人注意。这不有看到所谓的家中有喜事,应该是团队中有生宝宝了,所以也有借此来发布一些...

virmach:AMD平台小鸡,赌一把,单车变摩托?$7.2/年-512M内存/1核/10gSSD/1T流量,多机房可选

virmach送来了夏季促销,价格低到爆炸,而且在低价的基础上还搞首年8折,也就是说VPS低至7.2美元/年。不过,这里有一点要说明:你所购买的当前的VPS将会在09/30/2021 ~ 04/30/2022进行服务器转移,而且IP还会改变,当前的Intel平台会换成AMD平台,机房也会变动(目前来看以后会从colocrossing切换到INAP和Psychz),采取的是就近原则,原来的水牛城可能...

快云科技:香港沙田CN2云服务器低至29元/月起;美国高防弹性云/洛杉矶CUVIP低至33.6元/月起

快云科技怎么样?快云科技是一家成立于2020年的新起国内主机商,资质齐全 持有IDC ICP ISP等正规商家。云服务器网(yuntue.com)小编之前已经介绍过很多快云科技的香港及美国云服务器了,这次再介绍一下新的优惠方案。目前,香港云沙田CN2云服务器低至29元/月起;美国超防弹性云/洛杉矶CUVIP低至33.6元/月起。快云科技的云主机架构采用KVM虚拟化技术,全盘SSD硬盘,RAID10...

restful api为你推荐
一致性数据库事务的一致性是什么意思?removechild解释下这条语句this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);lazyloadphpwind中门户模式怎么使用lazyload图片加载?x77论坛"0x00000008"指令引用的"0x00000008"内存.该内存不能为"read"密码设置电脑怎么设置密码色温图led色温6000k显示是什么颜色呢?赵锡成著名的美籍华人有哪些充值卡充值充值卡怎么充值游戏印度it为什么说在IT印度远远领先中国水平?blacken“人非圣贤孰能无过”用英语怎么说
ftp空间 site5 免费ftp空间 bash漏洞 电信主机 宏讯 网通服务器 谷歌台湾 宿迁服务器 乐视会员免费领取 深圳主机托管 网站防护 机柜尺寸 so域名 weblogic部署 paypal登陆 以下 tracert 饭桶 neobux 更多