Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SOAP - What's the point?

Tags:

rest

soap

I mean, really, what is the point of SOAP?

Web services have been around for a while, and for a while it seemed that the terms 'SOAP' and 'Web service' were largely interchangeable. However SOAP always seemed unwieldy and massively overcomplicated to me.

Then REST came along, and suddenly web services made sense.

As Joel Spolsky says, give a programmer a REST URL, and they can start playing with the service right away, figuring it out.

SOAP is obfuscated behind WSDLs and massively verbose XML, and despite being web based, you can't do anything as simple as access a SOAP service with a web browser.

So the essence of my question is:

  • Are there any good reasons to ever choose SOAP over REST?
  • Are you working with SOAP now? Would it be better if the interface was REST?
  • Am I wrong?
like image 880
DanSingerman Avatar asked Mar 26 '09 16:03

DanSingerman


People also ask

What is the purpose of SOAP?

Soap is a salt of a fatty acid used in a variety of cleansing and lubricating products. In a domestic setting, soaps are surfactants usually used for washing, bathing, and other types of housekeeping. In industrial settings, soaps are used as thickeners, components of some lubricants, and precursors to catalysts.

What are the benefits of SOAP?

Soap removes dirt and sweat from your body, leaving your skin feeling clean and refreshed. But your body might not agree with the types of soap you use. Some traditional or normal soaps can be too harsh. These products will clean your skin but can leave it dry or irritated.

Do we need to use SOAP?

You don't need to use conventional soaps in your daily hygiene routine. All you absolutely need, bare bones, to stay clean is water. Just water. Water does a fine job of rinsing away dirt without stripping vital oils from your skin.

What is the SOAP principle?

SOAP (Simple Object Access Protocol) is a message protocol that enables the distributed elements of an application to communicate. SOAP can be carried over a variety of standard protocols, including the web-related Hypertext Transfer Protocol (HTTP).


1 Answers

As Joel Spolsky says, give a programmer a REST URL, and they can start playing with the service right away, figuring it out.

Whereas if the service had a well specified, machine readable contract, then the programmer wouldn't have to waste any time figuring it out.

(not that WSDL/SOAP is necessarily an example of good implementation of a well specified contract, but that was the point of WSDL)

Originally, SOAP was a simple protocol which allowed you to add a header to a message, and had a standardized mapping of object instances to XML structures. Putting the handling metadata in the message simplified the client code, and meant you could very simply persist and queue messages.

I never needed the header processing details when I built SOAP services back in 2001. This was pre-WSDL, and it was then normal to use GET for getting information and queries (no different to most applications which claim to be REST; REST has more in terms of using hyperlinks for service discovery) and POST with a SOAP payload to perform actions. Those actions which created resources would return the URL of the created resource to the client, and the client could then GET the resource. I think it's the fact that WSDL made it easy to think only in terms of RPC rather than actions which create resources which made SOAP lose the plot.

like image 133
Pete Kirkham Avatar answered Sep 22 '22 03:09

Pete Kirkham