Tuesday, 30 May 2017

Understanding the difference between Soap and Restful Web Services

A web service is the ability of a client application to invoke a service on a remote computer and get back data.  There are two types of web services:

  • Soap web service
  • Rest web service

Soap web service

A soap web service exposes a web service definition language (WSDL) document. Using a programming language like Java, you can create proxy objects that consume operations exposed by the web service’s SOAP stack. By creating a Java proxy object, your Java application can exchange the following messages with a soap web service:

  • Soap request: sent to the web service by a client application requesting an action.
  • Soap response: Sent to a client application by the web service after a SOAP request is processed.

A benefit of using web services is that you can create a client application in a development environment that supports SOAP. A client application is not bound to a specific development environment or programming language. For example, you can create a client application using Microsoft Visual Studio .NET and C# as the programming language. Likewise, you can create a client application using Java.

To read an article on AEM and SOAP - see http://scottsdigitalcommunity.blogspot.ca/2014/02/creating-adobe-cq-bundles-using-apache.html.

To read an article about creating an AEM HTL component that invokes a 3rd party SOAP web service and displays the result set, see http://scottsdigitalcommunity.blogspot.ca/2016/08/creating-aem-html-template-language.html.

Restful web services

A restful web service is the explicit use of HTTP methods. A restful web service is more lightweight as opposed to a soap web service. As a result, invoking a restful web service operation is normally faster than invoking a soap web service operation. You do not need to create Java proxy classes to invoke a restful web service. You can invoke a restful web service using almost any tool, leading to lower bandwidth and shorter learning curve. For example, you can invoke a restful web service using Java classes located in the org.apache.http package.

To read an article on AEM and Rest - see http://scottsdigitalcommunity.blogspot.ca/2013/11/creating-adobe-experience-manager.html.

Join the Adobe Experience Cloud Community 

Join the Adobe Experience Cloud Community by clicking this banner

I (Scott Macdonald) am a Senior Digital Marketing Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more CQ or other Adobe Digital Marketing end to end articles like this, then leave a comment and let me know what content you would like to see.

TwitterFollow the Digital Marketing Customer Care team on Twitter @AdobeExpCare.

YouTube: Subscribe to the AEM Community Channel