代码人生

SOAP和REST:哪个最适合你?

代码人生 http://www.she9.com 2018-08-10 19:39 出处:网络 编辑:@技术狂热粉
REST和SOAP之间有一些区别。阅读这篇文章,找出为什么一个人认为REST更好。

简短的回答,REST。不要让你的工程师和客户使用SOAP/XML/ wsdl(谁不喜欢缩写呢?)你不想让他们诅咒你,所以让他们的生活更轻松。我知道soap的概念是干净和清爽的,但是在处理soap的时候,没有什么能让我感到干净或清爽,只有肮脏和疲惫。是的,这个话题已经被广泛讨论过了,但是Cloud element很自豪自己是api的关键,所以我想我们应该在这个话题上发表一篇文章。你不觉得幸运吗?

SOAP和REST:哪个最适合你?

让我们从SOAP开始。我将尽可能不带偏见,但如果你读过我的其他文章,你就会知道SOAP代表简单(哈!)对象访问协议。它的格式是XML,类似于HTML标记,* gag *。我试着保持公正,但这也没持续多久。SOAP是在90年代开发的,因此在许多遗留api中使用。这是一个有状态的操作,如果您关心的是对给定对象的所有更改,而不仅仅是对象的更改,那么这是一个非常棒的操作。谁不喜欢所有的数据?您的ISP和主机服务器。如此多的细节会毁掉你的带宽。SOAP也是一个标准。意思是有规则可循。而REST则是一组由给定工程师解释的指导方针。


现在,完全贬低SOAP似乎是不公平的。尽管我个人喜欢REST,但SOAP有一些优点。因为SOAP支持WS-Security,所以它提供了更健壮的安全性。想要更容易地处理防火墙?SOAP的标准HTTP协议使防火墙变得不那么麻烦。您需要符合acid的事务吗?最好学会喜欢XML, SOAP是最好的/唯一的选择。


XML:

SOAP和REST:哪个最适合你?

REST表示表征状态转移。它可以使用更容易理解和编写JSON格式。因为它不像web的其他部分那样保持状态,它占用的带宽要少得多。因此,为什么你的移动应用程序几乎完全是基于REST原则开发的。我说原则是因为没有标准。只是一些指导方针。跟着他们走还是不跟着他们走,随你的便。SOAP要求您遵循严格的格式和协议。因为它更像一个指南,使用JSON,您可以学习,并部署它比SOAP/XML快得多。REST还使用标准HTTP动词(GET、POST、PATCH、PUT、DELETE)。因此,如果您已经熟悉了这些内容并了解了如何编写JSON,那么在编写API的过程中,您基本上掌握99%。

REST:

SOAP和REST:哪个最适合你?

这就是基本的分解。好吧,SOAP有一些上传。但是,这些都被其遗留的状态、麸质带宽需求和XML格式所抵消。如果您要从头开始构建API,请考虑大约70%的web现在是基于REST/JSON的。在REST中编写一个API端点,在SOAP中编写另一个端点,然后让我知道您的理智在每一个端点之后的位置。


如果你想了解JSON v. XML的概况(我知道你等不及了),请参看下面内容。


在一段时间内,XML(可扩展标记语言)是开放数据交换的唯一选择。但多年来,开放数据共享领域发生了许多变化。由于各种原因,更轻量级的JSON (Javascript对象表示法)已经成为XML的流行替代。几个明显的例子是:


更简洁——XML使用的词比必要的多


JSON更快——解析XML软件又慢又麻烦。由于解析大型XML文件的繁琐性和成本,许多DOM操作库可能导致应用程序使用大量内存。

JSON的结构很直观,无论使用何种编程语言,都很容易直接读取和映射到域对象。


下面是JSON相对于XML的更多好处,用户可能不太清楚:


JSON数据模型的结构与数据匹配:JSON的数据结构是映射,而XML是树。虽然一个map(仅仅是键/值对)Screen_Shot_2014-08-21_at_2.19.18_PM可能会受到限制,但这是我们想要的,因为它更容易解释,而且是可预测的。


在代码中:项目在代码中以相同的方式表示。在许多语言中,尤其是动态语言中,您只需“在JSON中发出声音”,就可以立即得到域对象。从JSON中的对象到代码中的对象很容易,因为它们是对齐的。当从XML中的对象转换到代码中的对象时,它们不会对齐,有很大的解释空间。


JSON是有限的,但这是一件好事:JSON在对象建模方面是有限的。有些人可能认为XML更好,因为可以建模更多对象,而且它不禁止开发人员使用XML。但是,尽管JSON禁止开发人员使用,但它以一种积极的方式使代码更简单、更可预测、更易于阅读。XML可以按照公司希望的任何方式进行格式化和功能设置,但这使得开发人员难以阅读、理解和转换XML。在大多数情况下,人们认为XML更好,因为开发人员可以做任何事情,但在简化的时代,少即是多,这使JSON成为更好的选择。


请关注公众号:程序你好
0

精彩评论

暂无评论...
验证码 换一张
取 消