当JSON如此简单易处理时,为什么要使用XML(SOAP)?

使用JSON接收和发送数据是通过简单的HTTP请求完成的。 而在SOAP中,我们需要处理很多事情。 解析XML也有时很困难。 即使Facebook在Graph API中使用JSON。 我仍然想知道为什么还应该使用SOAP? 是否有任何理由或领域,SOAP仍然是更好的选择? (尽管数据格式)

此外,在简单的客户端 - 服务器应用程序(如与服务器连接的移动应用程序)中,SOAP可以比JSON有什么优势?

考虑到我提供的信息(如果有的话),如果有人能够争取JSON和SOAP之间的主要/显着差异,我将非常感谢。


我发现了以下SOAP的优点

  • 每个人都坚持使用SOAP而不是使用JSON,这有一个重要原因。 使用每个JSON设置,您总是为每个项目提供自己的数据结构。 我不是指数据如何被编码和传递,而是数据格式如何定义的数据模型。
  • SOAP具有行业成熟的方式来指定数据将以表单形式存储Cart是产品的集合,并且每个产品都可以具有这些属性等。 哎呀,这是一个W3C规范。
  • JSON具有指定此数据结构的相似方式。 一个JavaScript类是最常见的做法。 一个JavaScript类并不是一种真正的数据结构,它以任何一种不可知论的,完善的,广泛使用的方式。 哎呀,JavaScript真的只在一个环境中执行,即浏览器。
  • 简而言之,SOAP有一种在成熟格式化文档(WSDL)中指定数据结构的方法。 JSON没有这样做的标准方法。
  • 如果您正在创建客户端应用程序,并且您的服务器实现是使用SOAP完成的,那么您必须在客户端使用SOAP。

    也看到这里和这里


    现在SOAP是一个完整的矫枉过正,恕我直言。 使用它很好,学习它很好,现在我们可以使用JSON。

    SOAP和REST服务(不管是否使用JSON)的唯一区别在于SOAP WS始终具有自己的WSDL文档,可以在REST中轻松转换为自描述文档,而必须为自己编写文档(至少记录数据结构)。 以下是我的两个优点:

    休息

    优点

  • 轻量级的(总而言之:不需要服务器端和客户端扩展,不需要大量的XML在这里和那里进行传输)
  • 自由选择数据格式 - 您可以决定是否可以使用普通的TXT,JSON,XML,甚至创建自己的数据格式
  • 大多数当前的数据格式(甚至是使用XML)确保只有真正需要的数据量通过HTTP传输,而使用SOAP处理5个字节的数据需要1 kB的XML垃圾(夸大,ofc,但你得到了点)
  • 缺点

  • 即使有些工具可以从docblock注释中生成文档,但如果想要获得良好的文档,还需要以非常具有描述性的方式编写这些注释
  • 肥皂

    优点

  • 有一个WSDL可以从甚至基本的docblock注释中生成(在很多语言中,即使没有它们)也可以很好地作为文档生成
  • 即使有些工具可以与WSDL一起使用,以增强对这个请求接口的使用(虽然我不知道任何这样的REST工具)
  • 严格的数据结构
  • 缺点

  • 严格的数据结构
  • 使用XML(仅!)进行数据传输,而每个请求包含大量垃圾,并且响应中包含的垃圾信息多五倍
  • 对外部库的需求(对于客户端和/或服务器,虽然现在有这样的库已经是许多语言的本地部分,但人们总是倾向于使用一些第三方库)
  • 总而言之, 我认为没有什么比SOAP更优于SOAP (和JSON)的理由 。 两者都可以做到这一点,几乎所有流行的网络编程语言都支持JSON编码和解码,而JSON则拥有更多的自由,HTTP传输从大量无用的信息垃圾中清除。 如果我现在要构建任何API,我将使用REST和JSON。


    我对这里看到的JSON趋势有点不同意。 虽然JSON的订单更加容易,但我敢说这个数字非常有限。 例如,SOAP WS不是最后一件事。 事实上,在肥皂客户端/服务器之间,您现在拥有企业服务总线,基于加密的验证方案,用户管理,时间戳请求/回复等等。对于所有这些,有一些巨大的软件平台提供围绕SOAP的服务(好吧, “网络服务”)并将注入你的XML中的东西。 因此,尽管JSON对于小型项目来说足够了,并且在那里容易一个数量级,但是如果您将传输控制和内容分离开来(即开发内容,实际服务器,但所有传输都是管理的),我认为它变得非常有限由另一个团队完成,再由另一个团队进行认证,由另一个团队进行部署)。 我不知道我在一家大公司的经历是否相关,但我会说JSON不会在那里生存。 除了数据表示的基本需求外,还有太多限制。 所以问题不在于JSON RPC本身,问题在于它错过了用于管理复杂应用程序中出现的复杂性的额外工具(并不是说你所做的并不复杂,而只是软件反映了公司的复杂性产生它)

    链接地址: http://www.djcxy.com/p/71465.html

    上一篇: Why use XML(SOAP) when JSON so simple and easy to handle?

    下一篇: WSDL vs REST Pros and Cons