第34讲 | 基于JSON的RESTful接口协议:我不关心过程,请给我结果
刘超
该思维导图由 AI 生成,仅供参考
上一节我们讲了基于 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
- 深入了解
- 翻译
- 解释
- 总结
本文通过对比SOAP协议和RESTful格式的API,强调了RESTful的灵活性和性能优势。SOAP协议虽然基于XML,但其复杂性和并发性能不佳,而RESTful格式的API采用HTTP的方法,更灵活地满足了增、删、查、改的需求。作者认为,使用RESTful格式的API可以简化SOAP协议,提高并发性能。文章通过具体示例展示了如何将SOAP格式的请求转换为RESTful格式的请求,使得请求更加简洁明了。此外,文章还探讨了RESTful API的设计理念,强调了无状态化、面向资源的、幂等的、横向扩展的、可缓存的特点。另外,文章还提到了服务发现问题,介绍了基于RESTful API的跨系统调用框架Spring Cloud中的Eureka组件,以及其实现原理和应用场景。总的来说,本文对于想要了解SOAP协议和RESTful格式的API的读者来说,是一篇值得一读的文章。文章内容丰富,涉及技术细节,对于理解和应用RESTful API具有一定的指导意义。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《趣谈网络协议》,新⼈⾸单¥68
《趣谈网络协议》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(31)
- 最新
- 精选
- 扬~文本传输最终都会转化为二进制流啊,为什么文本要比二进制rpc占用带宽?
作者回复: 数字2如果用int传输用几个bit,如果是字符串呢?
2018-11-10316 - 起风了001文本传输最终都会转化为二进制流啊,为什么文本要比二进制rpc占用带宽? 1 2018-11-10 作者回复: 数字2如果用int传输用几个bit,如果是字符串呢? 这个有点疑问, 用int传输需要32或者64位; 字符串的话, 看编码, 如果是utf8编码的话, 还是1个字节8bit即可表示.....
作者回复: int当然不会用32位编码呀
2019-05-2436 - jonhey看到这里,强烈建议老刘基于此教程,丰富一下内容,写本书,估计能成为网络、云计算、网络编程、微服务领域集大成的经典教材
作者回复: 不敢不敢
2019-02-184 - leohuachao我觉得RESTFul架构流行,也得益于前端框架的丰富吧,要不然维护客户端会话也够难实现
作者回复: 是的,简单
2018-09-044 - 葱本问个问题,购买这个动作,是告诉服务端减一,难受没有办法做到只告诉服务端结果吧
作者回复: 购买可不止减库存,服务端可以有个状态机的,要不然重复购买怎么办。
2019-04-043 - Geek_f6f02bRESTful 模型如何实现幂等,这个表示没有想通,就是好比之前SOAP,你告诉我减库存,我就执行减,减后还剩多少,是否成功返回,但是如果是客户端直接减去库存,然后告诉我说,将库存设置成这么多,服务端只要告诉我是否成功,并发了怎么解决,多个人同时请求,如果库存为10,5个请求都是减1,如果前面失败,但是后面成功,前面分别说将库存设置成9、8、7、6,都失败了,最后一个说设置成5成功了,感觉会有问题。
作者回复: 你这种减是有问题的,并发怎么办,后面5个只有一个成功是对的,其他还可以重试。
2019-04-2522 - YayuJSON-RESTful 算是一种协议吗?把它理解成一种规范会更好吧?
作者回复: 没必要纠结吧
2018-08-151 - 随心而至底子好,学起什么来都快
作者回复: 是的
2019-05-25 - 起风了001我们平时设计的api, 比如购买东西, 是传的数量, 而不是传库存剩余多少呀. 传数量应该是主流才是, 所以传数量不是RESTful模式吗?
作者回复: 对外接口是,内部实现不是
2019-05-24 - feifei在讨论 RESTful 模型的时候,举了一个库存的例子,但是这种方法有很大问题,那你知道为什么要这样设计吗? 此方法的问题在于,不是解决问题,而是将数据状态进行了转移,将状态交给存储,这样业务将可以无状态化运行,这种设计可以很好的解决扩展的问题,因为无状态,可以进行负载均衡!使用集群化来解决单机的问题。 基于文本的 RPC 虽然解决了二进制的问题,但是它本身也有问题,你能举出一些例子吗? 1,效率问题,程序与文本之间转换效率低,因而不适合内部大数据交换,因为文本利用阅读,对外采用较好 2,相比于二进制rpc,传输需要的带宽更大,二进制的rpc因为可以使用专用的客户短和服务器代码,可以更好的压缩数据,以提供更大的吞吐量2018-08-0355
收起评论