第34讲 | 基于JSON的RESTful接口协议:我不关心过程,请给我结果
刘超

上一节我们讲了基于 XML 的 SOAP 协议,SOAP 的 S 是啥意思来着?是 Simple,但是好像一点儿都不简单啊!
你会发现,对于 SOAP 来讲,无论 XML 中调用的是什么函数,多是通过 HTTP 的 POST 方法发送的。但是咱们原来学 HTTP 的时候,我们知道 HTTP 除了 POST,还有 PUT、DELETE、GET 等方法,这些也可以代表一个个动作,而且基本满足增、删、查、改的需求,比如增是 POST,删是 DELETE,查是 GET,改是 PUT。
传输协议问题
对于 SOAP 来讲,比如我创建一个订单,用 POST,在 XML 里面写明动作是 CreateOrder;删除一个订单,还是用 POST,在 XML 里面写明了动作是 DeleteOrder。其实创建订单完全可以使用 POST 动作,然后在 XML 里面放一个订单
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《趣谈网络协议》,新⼈⾸单¥68
《趣谈网络协议》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(31)
- 最新
- 精选
- 扬~文本传输最终都会转化为二进制流啊,为什么文本要比二进制rpc占用带宽?
作者回复: 数字2如果用int传输用几个bit,如果是字符串呢?
316 - 起风了001文本传输最终都会转化为二进制流啊,为什么文本要比二进制rpc占用带宽? 1 2018-11-10 作者回复: 数字2如果用int传输用几个bit,如果是字符串呢? 这个有点疑问, 用int传输需要32或者64位; 字符串的话, 看编码, 如果是utf8编码的话, 还是1个字节8bit即可表示.....
作者回复: int当然不会用32位编码呀
36 - jonhey看到这里,强烈建议老刘基于此教程,丰富一下内容,写本书,估计能成为网络、云计算、网络编程、微服务领域集大成的经典教材
作者回复: 不敢不敢
4 - leohuachao我觉得RESTFul架构流行,也得益于前端框架的丰富吧,要不然维护客户端会话也够难实现
作者回复: 是的,简单
4 - 葱本问个问题,购买这个动作,是告诉服务端减一,难受没有办法做到只告诉服务端结果吧
作者回复: 购买可不止减库存,服务端可以有个状态机的,要不然重复购买怎么办。
3 - Geek_f6f02bRESTful 模型如何实现幂等,这个表示没有想通,就是好比之前SOAP,你告诉我减库存,我就执行减,减后还剩多少,是否成功返回,但是如果是客户端直接减去库存,然后告诉我说,将库存设置成这么多,服务端只要告诉我是否成功,并发了怎么解决,多个人同时请求,如果库存为10,5个请求都是减1,如果前面失败,但是后面成功,前面分别说将库存设置成9、8、7、6,都失败了,最后一个说设置成5成功了,感觉会有问题。
作者回复: 你这种减是有问题的,并发怎么办,后面5个只有一个成功是对的,其他还可以重试。
22 - YayuJSON-RESTful 算是一种协议吗?把它理解成一种规范会更好吧?
作者回复: 没必要纠结吧
1 - 随心而至底子好,学起什么来都快
作者回复: 是的
- 起风了001我们平时设计的api, 比如购买东西, 是传的数量, 而不是传库存剩余多少呀. 传数量应该是主流才是, 所以传数量不是RESTful模式吗?
作者回复: 对外接口是,内部实现不是
- feifei在讨论 RESTful 模型的时候,举了一个库存的例子,但是这种方法有很大问题,那你知道为什么要这样设计吗? 此方法的问题在于,不是解决问题,而是将数据状态进行了转移,将状态交给存储,这样业务将可以无状态化运行,这种设计可以很好的解决扩展的问题,因为无状态,可以进行负载均衡!使用集群化来解决单机的问题。 基于文本的 RPC 虽然解决了二进制的问题,但是它本身也有问题,你能举出一些例子吗? 1,效率问题,程序与文本之间转换效率低,因而不适合内部大数据交换,因为文本利用阅读,对外采用较好 2,相比于二进制rpc,传输需要的带宽更大,二进制的rpc因为可以使用专用的客户短和服务器代码,可以更好的压缩数据,以提供更大的吞吐量55
收起评论