代码之家  ›  专栏  ›  技术社区  ›  Brian Lyttle

REST与SOAP服务之间的选择指南?

  •  10
  • Brian Lyttle  · 技术社区  · 16 年前

    有人有关于在REST和SOAP之间做出决定的文档或指南的链接吗?我理解这两者,但我正在寻找一些关于关键决策点的参考,例如安全,这可能会让你倾向于其中之一。

    4 回复  |  直到 16 年前
        1
  •  6
  •   Rob Cooper    16 年前

    Google first hit 看起来相当全面。

    我认为这里的问题是,有太多的人支持其中一种,最好是自己用谷歌搜索,更多地了解赞成/反对者,并做出自己的决定。

    我知道这听起来有点蹩脚,但最终这些设计决策取决于开发人员/架构师 99%的情况下,问题域将是决定因素 (或者至少应该是),而不是网上的指南。

        2
  •  1
  •   kapil das    11 年前

    简单对象访问协议(SOAP)标准是一种定义消息架构和消息格式的XML语言,由Web服务使用,它包含对操作的描述。WSDL是一种基于XML的语言,用于描述Web服务以及如何访问它们。将在SMTP、HTTP、FTP等上运行。需要中间件支持、定义良好的机制来定义WSDL+XSD等服务,WS-Policy SOAP将返回基于XML的数据,SOAP提供安全性和可靠性标准

    代表性状态转移(RESTful)web服务。它们是第二代Web服务。RESTful web服务,与基于SOAP-的服务相比,通过HTTP进行通信,并且不需要XML消息或WSDL服务-API定义。对于REST,不需要中间件,只需要HTTP支持。WADL标准,REST可以返回XML、纯文本、JSON、HTML等

    对于许多类型的客户端来说,使用RESTful web服务更容易,同时使服务器端能够发展和扩展。客户端可以选择使用服务的部分或全部方面,并将其与其他基于web的服务混合在一起。

    REST uses standard HTTP so it is simplerto creating clients, developing APIs 
    REST permits many different data formats like XML, plain text, JSON, HTML where  as  SOAP only permits XML.
    REST has better performance and scalability.
    Rest and can be cached and SOAP can't 
    Built-in error handling where SOAP has No error handling
    REST is particularly useful PDA and other mobile devices.
    

    REST服务易于与现有网站集成。

    SOAP具有一组协议,这些协议提供了安全性和可靠性等标准,并与其他符合WS的客户端和服务器进行互操作。SOAP Web服务(如JAX-WS)在处理异步处理和调用方面很有用。

    对于复杂的API,SOAP将更加有用。

        3
  •  0
  •   a1ashiish    11 年前

    我认为REST和SOAP都可以用来实现类似的功能,但一般来说,当需要SOAP的特定功能时,应该使用SOAP,否则REST的优点通常是最好的选择。然而,REST和SOAP通常都被称为“Web服务”,其中一种经常被用来代替另一种,但它们是完全不同的方法。REST是一种用于构建客户端-服务器应用程序的架构风格。SOAP是用于在两个端点之间交换数据的协议规范。

    我非常同意+Rob Cooper的观点。是的,有这么多拥护者。我已经列出了 difference between soap and rest .

        4
  •  0
  •   JTech    8 年前

    有一个很好的流程图可以帮助您在REST和SOAP之间做出选择。

    流程图链接: https://drive.google.com/file/d/0B3zMtAq1Rf-sdVFNdThvNmZWRGc/edit

    文章链接: https://www.linkedin.com/pulse/20140818062318-7933571-soap-vs-rest-flowchart-to-determine-the-right-web-services-protocol-for-your-needs

    我用来做出这个决定的另外两个因素是:

    1) 该服务的客户端是否需要XML以外的媒体类型(例如JSON)。如果是,则使用REST。

    2) 服务的客户端是否总是应用程序/服务器(例如,不是RIA或AJAX客户端)。如果不是,则倾向于REST,因为使用AJAX时更容易使用REST服务。