基于SOAP的Web服务在哪一点上不符合REST体系结构?

基于SOAP的Web服务在哪一点上不符合REST体系结构?,rest,soap,Rest,Soap,关于使用SOAP和RESTful Web服务的Web服务有大量的讨论。但我不知道使用WSDL、UDDI和SOAP的Web服务在哪一点上不符合REST体系结构?在大多数情况下。我有一本书。但要简短。我想你说的是具有RPC绑定风格的SOAP Web服务。。。它们是XML/RPC,而REST是REST。这里定义了非常具体的REST约束:Roy Fielding SOAP RPC Web服务如何满足REST约束: 客户端-服务器体系结构-始终 无国籍- 缓存- 统一接口-从不 分层系统- 按需编码(可

关于使用SOAP和RESTful Web服务的Web服务有大量的讨论。但我不知道使用WSDL、UDDI和SOAP的Web服务在哪一点上不符合REST体系结构?

在大多数情况下。我有一本书。但要简短。我想你说的是具有RPC绑定风格的SOAP Web服务。。。它们是XML/RPC,而REST是REST。这里定义了非常具体的REST约束:Roy Fielding

SOAP RPC Web服务如何满足REST约束:

  • 客户端-服务器体系结构-始终
  • 无国籍-
  • 缓存-
  • 统一接口-从不
  • 分层系统-
  • 按需编码(可选)-可能

在大多数情况下。我有一本书。但要简短。我想你说的是具有RPC绑定风格的SOAP Web服务。。。它们是XML/RPC,而REST是REST。这里定义了非常具体的REST约束:Roy Fielding

SOAP RPC Web服务如何满足REST约束:

  • 客户端-服务器体系结构-始终
  • 无国籍-
  • 缓存-
  • 统一接口-从不
  • 分层系统-
  • 按需编码(可选)-可能

    • REST服务由其接口定义。要保持安静,它必须具备:

    • 确定资源
    • 通过表示进行操纵
    • 自描述性错误消息
    • 作为应用状态引擎的超媒体

    • SOAP在前三个方面做得不错,尽管它显著地重新实现了#2和#3,因此与依赖HTTP的底层协议相比,它更详细,更不稳定。肥皂真正与其他产品不同的地方是在4-HATEOAS中。正确设计的REST服务应该直接在web浏览器中充分发挥功能。诚然,大多数所谓的“REST”服务也不这样做,但至少是可能的。SOAP需要使用重要的工具。(这是一个不错的选择。)

      REST服务由其接口定义。要保持安静,它必须具备:

    • 确定资源
    • 通过表示进行操纵
    • 自描述性错误消息
    • 作为应用状态引擎的超媒体

    • SOAP在前三个方面做得不错,尽管它显著地重新实现了#2和#3,因此与依赖HTTP的底层协议相比,它更详细,更不稳定。肥皂真正与其他产品不同的地方是在4-HATEOAS中。正确设计的REST服务应该直接在web浏览器中充分发挥功能。诚然,大多数所谓的“REST”服务也不这样做,但至少是可能的。SOAP需要使用重要的工具。(这是一个不错的选择。)

      您似乎对SOAP非常了解,但您对REST的了解还不足以进行客观的比较。谢谢您的意见!您能详细说明一下吗?您似乎在列出SOAP的特性,然后说REST没有这些特性,所以它是不同的。这不是一个公平的比较,因为REST体系结构与SOAP不在同一特定级别。你的第3点是唯一准确的项目#2不正确(许多REST服务是JSON,而不是超媒体。)#7也不正确(REST服务可以使用cookies和持久身份验证)。关于SOAP的其他要点是准确的,但没有明确指定REST-URL、身份验证和其他架构细节留给开发人员。感谢您的建议,但您错了。我编辑了我的答案,让它更清晰。谢谢你的额外细节(老实说),但你仍然大错特错。我对#7再也没有问题了,因为你纠正了它声称REST是无状态的。关于REST的两个主要误解是:1)HATEOAS并不意味着禁止非超媒体数据,只是超媒体响应必须包含在服务中。2) IRI到底是什么?它当然与REST无关,甚至不会使“请不要混淆神秘的TLA”。您似乎对SOAP非常了解,但您对REST的理解不足以进行客观比较。谢谢您的意见!您能详细说明一下吗?您似乎在列出SOAP的特性,然后说REST没有这些特性,所以它是不同的。这不是一个公平的比较,因为REST体系结构与SOAP不在同一特定级别。你的第3点是唯一准确的项目#2不正确(许多REST服务是JSON,而不是超媒体。)#7也不正确(REST服务可以使用cookies和持久身份验证)。关于SOAP的其他要点是准确的,但没有明确指定REST-URL、身份验证和其他架构细节留给开发人员。感谢您的建议,但您错了。我编辑了我的答案,让它更清晰。谢谢你的额外细节(老实说),但你仍然大错特错。我对#7再也没有问题了,因为你纠正了它声称REST是无状态的。关于REST的两个主要误解是:1)HATEOAS并不意味着禁止非超媒体数据,只是超媒体响应必须包含在服务中。2) IRI到底是什么?它当然与REST无关,甚至不会使“请不要混淆神秘的TLA”。SOAP不符合REST体系结构的任何部分,也没有理由这样做。顺便说一句,你有理由希望SOAP服务符合REST体系结构吗?没有,我没有理由希望SOAP服务符合REST体系结构。我对架构风格的差异感兴趣。SOAP是一种协议。这不是一种建筑风格。REST不是协议,它是一种体系结构样式。SOAP不符合REST体系结构的任何部分,也没有理由这样做。顺便问一下,您有理由希望SOAP服务