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

Web services SOA实现的首选-SOAP还是REST?,web-services,rest,soap,soa,Web Services,Rest,Soap,Soa,考虑到REST框架/API的当前成熟度,对于新的SOA项目,哪一个应该是更好的选择—soap还是REST PS-请原谅我是个笨蛋,如果问错了问题,请告诉我 这有点悬而未决。现在我通常有点倾向于休息,但休息和肥皂是两种不同的动物。REST更像是一种架构风格,其中SOAP是一种描述的协议。话虽如此,我确实编写了许多SOAP接口 我想指出的一点是,使用REST,您不受数据表示的限制,因此可以使用XML、JSON、YAML等。因此,您的数据可以更加轻量级。但是,对于SOAP,您必须使用XML。不过,有一

考虑到REST框架/API的当前成熟度,对于新的SOA项目,哪一个应该是更好的选择—soap还是REST


PS-请原谅我是个笨蛋,如果问错了问题,请告诉我

这有点悬而未决。现在我通常有点倾向于休息,但休息和肥皂是两种不同的动物。REST更像是一种架构风格,其中SOAP是一种描述的协议。话虽如此,我确实编写了许多SOAP接口

我想指出的一点是,使用REST,您不受数据表示的限制,因此可以使用XML、JSON、YAML等。因此,您的数据可以更加轻量级。但是,对于SOAP,您必须使用XML。不过,有一件事需要明确考虑,那就是如何使用这项服务

一般来说,如果您的服务将被移动设备Android、iOS、Windows Phone使用,那么REST周围还有很多框架,因此利用这些现有框架是明智的。如果您有更老的大公司连接到这个系统,那么他们很可能会有现有的SOAP实现,这样他们就可以更轻松地访问SOAP服务

然而,我要说的是,提供这两种服务实际上并没有那么遥远。如果您有一个位于/api/v1/customers的服务,那么SOAP是一个基于xml的协议,REST是面向ROA资源的体系结构的一种体系结构样式,而不是规范或标准

Web服务与SOA、漂亮URL与REST

拥有web服务并不意味着您拥有SOA体系结构 这可能是我经常听到的关于SOA架构的最大误解之一。我看到许多开发人员认为,如果他们的体系结构中有一两个web服务,他们会说他们的体系结构是SOA体系结构。我认为这是因为两个原因:1“Web服务”和“面向服务”在命名上的相似性使人们认为它们是相同的东西;2由于web服务是实现SOA体系结构的最常见方式,这促使人们认为,当他们创建了一个web服务时,他们的体系结构就是SOA体系结构。 SOA体系结构的特点是由独立的服务组成,这些服务封装业务功能并将其公开为服务,可以是web服务、windows服务或任何其他形式的公开。web的普及和web开发技术的进步使web服务的创建变得更容易,这使得web服务成为实现SOA体系结构的一种选择手段,SOA体系结构中服务的定义并没有将web服务放在SOA体系结构实现的任何特殊位置

拥有漂亮的URL并不意味着拥有REST体系结构风格 REST架构风格是最近的另一个热门话题,因此也受到很多误解的影响。REST为web服务的实现带来了简单性,并且受到web开发社区的广泛欢迎。它与HTTP协议配合得很好,我们从www时代开始就熟悉HTTP协议。 REST体系结构风格的一个特点是,资源位于体系结构的中心,它们以URL的形式漂亮地表示出来。REST为我们带来了漂亮的URL,因此人们在URL和REST架构之间建立了连接。Leonard Richardson开发了一个成熟度模型,它告诉您的API或RESTful服务的级别RESTful的程度


所以或多或少,rest和soap调用是一样的!我不会说它们是相同的,只是您需要查看您将要处理的潜在用例,以了解应该使用哪些用例。另外,我想说的是,对于SOAP,双方都有很多需要学习的地方,了解WSDLs很好,因为它们都需要了解HTTP及其错误代码。对于这两种方式,您都希望探索HTTPS。使用RESTful服务的好处在于,它比SOAP更依赖HTTP错误代码,因为其中有一个单独的机制来定义错误/错误?例如,REST服务不是自描述的。这使得使用REST的某些场景更加困难;需要是状态完整的,涉及安全性。谢谢。这几乎意味着SOAP,因为对于大多数RESTful服务,您所能做的最好的事情就是HTTPS。@JohnSaunders-谢谢!