Compare RESTful vs. SOAP Web Services

DZone 's Guide to

Compare RESTful vs. SOAP Web Services

· Integration Zone ·
Free Resource

There are currently two schools of thought in developing Web Services – one being the standards-based traditional approach [ SOAP ] and the other, simpler school of thought [ REST ].

This article quickly compares one with the other -

Assumes a point-to-point communication model–not usable for distributed computing environment where message may go through one or more intermediaries Designed to handle distributed computing environments
Minimal tooling/middleware is necessary. Only HTTP support is required Requires significant tooling/middleware support
URL typically references the resource being accessed/deleted/updated The content of the message typically decides the operation e.g. doc-literal services
Not reliable – HTTP DELETE can return OK status even if a resource is not deleted Reliable
Formal description standards not in widespread use. WSDL 1.2, WADL are candidates. Well defined mechanism for describing the interface e.g. WSDL+XSD, WS-Policy
Better suited for point-to-point or where the intermediary does not play a significant role Well suited for intermediated services
No constraints on the payload Payload must comply with the SOAP schema
Only the most well established standards apply e.g. HTTP, SSL. No established standards for other aspects.  DELETE and PUT methods often disabled by firewalls, leads to security complexity. A large number of supporting standards for security, reliability, transactions.
Built-in error handling (faults) No error handling
Tied to the HTTP transport model Both SMTP and HTTP are valid application layer protocols used as Transport for SOAP
Less verbose More verbose
java ,enterprise-integration ,soap ,rest

Published at DZone with permission of Jagadeesh Motamarri , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}