Roy Fielding 于 2000 年在他的博士论文中引入了表述性状态转移 (REST) 一词。REST 描述了一种不特定于 Web API 的 Web 架构,但现在作为一种开发 Web API 的方法已经变得非常流行。SOAP 于 2003 年 6 月成为 W3C 推荐标准. 所以从技术上讲,REST 是在 SOAP 之前定义的,但是 SOAP 在一段时间内是开发 Web 服务的非常流行的方法,并且在开始时比 REST 更流行。但随后开发人员发现 SOAP 对于开发 Web 服务/API 来说过于臃肿且过于复杂,而 REST 可以很好地满足他们的需求。REST 的简单性似乎使其更受欢迎,而且它遵循基本的 HTTP 原则这一事实使其在异构平台上更加可移植。因此,历史上可能没有某个里程碑或事件导致了从 SOAP 到 REST 的转变。这只是逐渐过渡到最适合开发人员需求的方式。
对 SOAP 历史的澄清
SOAP 1.0 版实际上是由 Microsoft 于 1999 年 12 月推出的,因此这两种技术在定义时非常接近。但是直到 2000 年 5 月,它才被授予 W3C 成为标准,直到 2003 年才被提出建议。我认为,在它成为通用标准之前,整个开发社区都不能认为它是可行的为异构环境开发 Web 服务,这是 Web 服务和 SOA 的一大承诺。在那之前,它只是可以在 Microsoft 平台上使用的东西。
基于 API 趋势评论的更新
@GarciaPL 显示的 Google Insights 图非常有趣,我想我理解他试图在论文中展示的内容。但在得出强有力的结论时,我会小心处理这些数据。相同的 Google Insights 搜索显示在博客文章“ REST in Peace, SOAP ”中。这篇博文中更具体的可能是显示 2,000 个 API 的图表,从 2008 年到 2010 年的趋势是转向 REST。此信息的原始来源在这里. 这确实显示了公开公开 API 的 REST 趋势。论文是专门针对公开 API 的使用,还是针对一般的 Web 服务开发?如果是一般的网络服务,我不太确定。对于在 Microsoft 平台上开发内部项目的开发人员来说,今天使用的术语不是 SOAP,而是 Windows Communication Foundation (WCF)。尽管 SOAP 在幕后,但几乎没有必要讨论管道,因为 WCF 隐藏了很多内部结构。如果我在“rest web service”、“soap web service”和“wcf web service”上进行 Google Insights 搜索,您会得到非常不同的结果,表明它们实际上正在融合。或者,如果您搜索“restful 服务”、“soap 服务”和“wcf 服务”它实际上显示 WCF 在 2008 年接管,REST 逐渐上升。
对于 API 的 REST 来说是有意义的,因为它们可移植、易于使用、可扩展且易于集成。对于一般 Web 服务的开发,我不太确定。我认为 WCF 仍然很受 Microsoft 开发人员的欢迎,它非常适合某些类型的项目。这只是为工作选择正确工具的问题。我将重申我之前所说的,我不认为它们是导致过渡到 RESTful API 的重大历史事件。我认为只是开发人员在学习什么是适合这项工作的工具。