现在我对SOAP和rest式服务之间的区别有了一点了解。

我的问题是什么时候应该使用SOAP,什么时候应该使用RESTful;当谈到性能/速度或请求处理时,哪一个“更好”?

我是第一次在RESTful (Java)实现它,我想知道更多关于它;我以前处理过SOAP。

这是这篇文章的后续问题。


当前回答

休息vs.肥皂

SOAP:

SOAP是运行在TCP/UDP/SMTP上的简单对象访问协议。 SOAP以XML格式读取和写入请求响应消息。 SOAP使用接口来定义服务。 SOAP更安全,因为它有自己的安全性和定义良好的标准。 SOAP遵循RPC和文档风格来定义web服务。 SOAP使用SOAP- ui作为客户端工具进行测试。

REST

► REST is representational state transfer that uses underlying HTTP protocols. ► REST is stateless. ► REST is an architectural style that is used to describe and define web services. ► REST can read and write request response messages in JSON/XML/Plain HTML. ► REST uses URI for each resource that is used in web service.A resource can be image text method etc. ► REST uses set of verbs, like HTTP's GET, POST, PUT, DELETE. ► REST is easy to develop and easy to manage as compared to SOAP UI. ► REST has light-weight client tools or plugins that can easily be integrated inside a browser. ► REST services are cacheable.

其他回答

休息vs.肥皂

SOAP:

SOAP是运行在TCP/UDP/SMTP上的简单对象访问协议。 SOAP以XML格式读取和写入请求响应消息。 SOAP使用接口来定义服务。 SOAP更安全,因为它有自己的安全性和定义良好的标准。 SOAP遵循RPC和文档风格来定义web服务。 SOAP使用SOAP- ui作为客户端工具进行测试。

REST

► REST is representational state transfer that uses underlying HTTP protocols. ► REST is stateless. ► REST is an architectural style that is used to describe and define web services. ► REST can read and write request response messages in JSON/XML/Plain HTML. ► REST uses URI for each resource that is used in web service.A resource can be image text method etc. ► REST uses set of verbs, like HTTP's GET, POST, PUT, DELETE. ► REST is easy to develop and easy to manage as compared to SOAP UI. ► REST has light-weight client tools or plugins that can easily be integrated inside a browser. ► REST services are cacheable.

SOAP web服务总是执行POST操作,而使用REST,您可以选择特定的HTTP方法,如GET、POST、PUT和DELETE。

例如:要使用SOAP获取一个项目,您应该创建一个请求XML,但是在REST的情况下,您可以在URL本身中指定项目id。

REST在大多数情况下更容易使用,也更灵活。与SOAP不同,REST不必使用XML来提供响应。我们可以找到基于rest的Web服务,这些服务以命令分隔值(CSV)、JavaScript对象符号(JSON)和真正简单联合(RSS)格式输出数据。

我们可以以一种易于在应用程序所需的语言中解析的形式获得所需的输出。REST更高效(使用更小的消息格式)、更快,并且在设计理念上更接近其他Web技术。

SOAP Web服务:

如果您的应用程序需要有保证的可靠性和安全性级别,那么SOAP将提供额外的标准来确保这种类型的操作。 如果双方(服务提供者和服务使用者)必须就交换格式达成一致,那么SOAP将为这种类型的交互提供严格的规范。

RestWeb服务:

完全无状态操作:用于无状态的CRUD(创建、读取、更新和删除)操作。 缓存情况:如果信息需要缓存。

SOAP

简单对象访问协议(SOAP)是一种标准的XML语言,定义了消息体系结构和消息格式。Web服务使用它。它包含操作的描述。

WSDL是一种基于xml的语言,用于描述Web服务以及如何访问它们。它将运行在SMTP, HTTP, FTP等。它需要中间件支持和定义良好的机制来定义WSDL+XSD和WS-Policy等服务。 SOAP将返回基于XML的数据

REST

具象状态传输(RESTful) web服务。它们是第二代Web服务。

基于rest的web服务通过HTTP而不是基于soap的服务进行通信,并且不需要XML消息或WSDL服务api定义。对于REST中间件不需要,只需要HTTP支持。它是一个WADL标准,REST可以返回XML、纯文本、JSON、HTML等。