我理解RESTful是一种架构风格,但究竟是什么让基于SOAP的Web服务不能算作RESTful?
我不清楚下面哪些点(来自Wikipedia)不符合SOAP。
编辑:我刚刚遇到this,总结得非常好。
REST不是RPC,RPC说,“定义 一些做某事的方法“ 而REST说,“定义一些 资源,他们将拥有这些 方法”。 这是一个微妙但重要的区别, 当给出URI时,任何人都知道他们可以 通过预定义与之交互 一套方法和接收标准 HTTP响应作为回报。所以给定 http://www.peej.co.uk/我知道我可以 发出GET并收到 有意义的回报。我可能会 试试PUT就可以改变它 收到有意义的HTTP错误代码 因为我没有被授权干涉 用它。
答案 0 :(得分:55)
REST和SOAP不是等同的概念。
REST:
SOAP:
上面列表中的第2和第3项是不兼容的要点。
答案 1 :(得分:46)
SOAP遵循RPC模式。 SOAP API描述了一系列方法及其参数和返回值,您可以从代码中调用这些方法。有一个编组步骤将其转换为网络表示。
REST永远不是RPC。 REST API描述了一系列资源,以及一组可以对其起作用的动词(通常是HTTP的GET,POST,PUT,DELETE)。
直接回答您的问题:SOAP主要违反第6点(它不提供跨API的统一动词集)。它也违反了第2点(服务器可以维护每个客户端的状态),结果也是第3点(状态阻止缓存)。
答案 2 :(得分:5)
REST的目标之一是可达性,因为资源需要由uri(查询字符串)来识别。在肥皂中发布请求,因此对于具有相同uri的不同请求,因此资源不能由您唯一标识
答案 3 :(得分:4)
REST只适用于http协议。
答案 4 :(得分:2)
宁静: REST是使用HTTP协议构建Web服务的架构风格,其中Web服务被视为资源,并且使用一些基本的HTTP方法,如GET,POST,DELETE 确定资源的标准行动。 RESTful Web API(也称为RESTful Web服务)是使用HTTP和REST原则实现的Web API。
肥皂: SOAP,最初定义为简单对象访问协议,是用于以XML形式交换结构化信息的协议规范。
答案 5 :(得分:2)
SOAP协议: SOAP是一种协议,意味着它具有已定义的结构。
RESTful API设计涉及在资源方面打破系统,并通过Web服务基础uris上定义的端点(也称为操作)提供对这些资源的访问。使用标准HTTP方法完成访问,并由auth机制控制。通过请求和响应提供并获得资源的配置,其中HTTP状态代码传达状态。 资源是系统中存在RESTful的实体。例如,在博客网站的情况下,这些可以是博客,帖子和评论。 2. EndPoints或操作提供了一种机制,通过它可以访问这些资源。例如,列出特定博客上所有博客帖子的端点将是/ blogs / {blogId} / posts上的GET。 3.基本URI定义通过端点可用资源的Web uri位置。举一个真实的例子,对于Google博主,base_uri是https://www.googleapis.com/blogger/v3。 4. HTTP方法是REST的简单性所在。在RESTful API设计中,资源操作是通过标准HTTP方法完成的,主要是GET,POST,PUT和DELETE。其他HTTP方法 - 在某些情况下也使用OPTIONS,HEAD,PATCH。
答案 6 :(得分:1)
SOAP与REST Web服务
1)SOAP是一种协议,而REST是一种架构风格。
2)SOAP不能使用REST,因为它是一个协议,而REST可以使用SOAP Web服务,因为它是一个概念,可以使用任何协议,如HTTP,SOAP。
3)SOAP使用服务接口来公开业务逻辑,而REST使用URI来公开业务逻辑。
4)SOAP定义了严格遵循的标准,而REST没有定义太多像SOAP这样的标准。
5)SOAP需要比REST更多的带宽和资源,而REST需要的带宽和资源少于SOAP。
6)SOAP定义了自己的安全性,而RESTful Web服务从底层传输继承了安全措施。
7)SOAP仅允许XML数据格式,而REST允许不同的数据格式,如纯文本,HTML,XML,JSON等。
RESTful Web服务比SOAP Web服务更受欢迎。