SOAP webservice和RESTFUL webservice之间的区别
我是Java的新手。我知道有两种类型的Web服务
- SOAP Web服务。
- RESTful Web服务。
任何人都可以告诉我它们之间的基本区别是什么。在哪种情况下创建SOAP Webservice
以及在哪种情况下创建RESTful Webservice
。
谢谢,
正如第一个答案已经解释的那样,SOAP Webservices和REST Webservices在各个方面都有所不同。
肥皂:
- 您可以在.wsdl文件中定义接口,该文件准确描述了预期的输入参数以及返回值的外观
- 有一些工具可以用java类hirarchies生成.wsdl文件。 例如JAXB
- 还有工具来生成java对象/类作为eclipse的一部分(例如暂时不知道名称)。
- SOAP非常严格。 在处理之前,每个请求都是针对wsdl进行validation的。
一个好的但不太容易从SOAP WS框架开始的是Apache CXF
REST(到目前为止没有亲身体验,随时纠正和改进;)):
- 一种访问Web服务器或Web应用程序以从中检索数据或向其发送数据的方法。
- 它只是协商,如何访问。
- 常见的是这样的http://server.domain.com/app/type/id=123来检索id = 123的类型类型的对象
- 非常直观,但没有自动validation请求。
- …
我相信,我错过了其他几点。 但我认为这是一个有用的开始。
在最基本的层面上,SOAP是一种消息传递协议,REST是一种设计理念,而不是协议。 当您将WebService基于SOAP协议时,您基本上遵守创建服务请求的SOAP规则,将请求发布到服务器,在服务器接收请求,处理请求并将结果作为SOAP消息返回.SOAP不会谈关于客户从服务中获益的确切方式,以及如何设计客户端本身(除了它发布的消息之外),它只告诉客户端的消息如何被发送到服务和返回。
REST是REpresentational State Transfer的缩写。 它没有指定创建消息并将其发布到服务器的规则。 您可以通过简单的HTTP协议来完成此操作。 REST指定的是客户端和服务器管理其状态的方式,以便它们对客户端 – 服务器通信有用。 在这里,您更专注于设计客户端和服务器的状态,而不是他们正在交换的消息。
你也可以用Google搜索; 这是一篇关于这个主题的好文章: http : //geeknizer.com/rest-vs-soap-using-http-choosing-the-right-webservice-protocol/