SOA实现的首选 - SOAP还是REST?

时间:2015-05-19 09:18:41

标签: web-services rest soap soa

鉴于当前REST框架/ API的成熟度,这应该是新SOA项目的更好选择 - 肥皂还是休息?

PS - 请原谅我是个菜鸟,如果提出错误的问题,请告诉我!

2 个答案:

答案 0 :(得分:0)

这有点悬而未决。现在我通常对REST有点偏向,但REST和SOAP是两种不同的动物。 REST更像是一种架构风格,其中SOAP是一种描述的协议。话虽如此,我肯定写了很多SOAP接口。

我想要注意的一点是,使用REST,您不仅限于数据的表示,因此它可以是XML,JSON,YAML等。因此,您的数据可以更轻量级。但是,对于SOAP,您必须使用XML。但有一点必须考虑的是这项服务将如何被消费。

通常,如果您的服务将由移动设备(Android,iOS,Windows Phone)使用,那么围绕REST的框架会更多,因此利用这些现有框架是明智之举。如果您有较旧的大公司连接到这个,他们可能会有现有的SOAP实现,因此他们将更容易访问SOAP服务。

然而,我会说,提供两者并不是真的那么遥远。如果您的服务位于/api/v1/customers<<这可能是您的其余URL,而SOAP协议使用/api/v1/soap/customers/*。只要你的业务逻辑,如果有任何被封装到不同的函数中,那么SOAP和REST实现都可以调用它。

我希望这是有帮助的,但是围绕技术有很多问题,不要试图强迫你的用例适合这项技术。您的技术选择应该来自用例。

答案 1 :(得分:0)

SOAP 是一个基于xml的协议, REST 是ROA的架构风格( R esource O 面向 A 结构),而不是规范或标准。

  

Web服务与SOA和漂亮的URL与REST

  1. 拥有Web服务并不意味着您拥有SOA架构
    这可能是我经常听到的关于SOA架构的最大误解之一。我看到很多开发人员认为如果他们的架构中有一两个Web服务,他们就会说他们的架构是一个SOA架构。我认为这是因为有两个原因:1)“Web服务”和“面向服务”的命名相似性使人们认为它们是同一个东西; 2)由于Web服务是实现SOA体系结构的最常用方式,这促使人们认为,当他们创建一个Web服务时,他们的体系结构就是SOA体系结构。 SOA体系结构的特征在于独立服务的组合,其封装业务功能并将其作为服务公开,其可以是web服务,windows服务或任何其他形式的暴露。无处不在的Web和Web开发技术的进步使得Web服务的创建变得更加容易,这使得Web服务成为实现SOA体系结构的一种选择,然而,SOA体系结构中的服务定义并未将Web服务放入关于SOA体系结构实现的任何特殊立场。

  2. 拥有漂亮的网址并不意味着您拥有REST架构风格
    REST架构风格最近是另一个热门话题,因此也存在很多误解。 REST为Web服务的实现带来了简单性,并且非常受Web开发社区的欢迎。它与HTTP协议配合得很好,我们从www时代开始就熟悉它 REST架构风格的一个特征是资源是架构的核心,它们在URL中表现得非常漂亮。 REST为我们带来了漂亮的URL,因此人们在URL和REST架构之间建立了连接。 Leonard Richardson开发了一个成熟度模型,它告诉您的API或RESTful服务的级别,以及RESTful的程度。

  3. source