REST and SOAP are different ways of transmitting data between two different systems via an API. REST is a set of architectural principles. SOAP is a protocol maintained by the World Wide Web Consortium.
What is REST?
REST is a set of architectural principles that are great for developing web services, web applications and mobile applications. Pretty much all implementation details are left up to developers.
There’s no standard on what type of response a system should send – it could be in HTML, XML, plaintext, JSON, or something else. JSON and XML are very common – with JSON being most frequent.
For an API to be RESTful there are six rules that it needs to follow. The rules are as follows:
- Uniform interface
- Layered system
- Code on demand (mostly legacy)
More details about the constraints can be read in the blog article What are REST API’s constraints?
What is SOAP?
SOAP is a standard protocol that was designed to allow cross-language and environment communication. As a standardized protocol it can impose a lot of overhead and complexity to deal with all of the built-in rules.
The built-in rules are things like atomicity, consistency, isolation and durability (ACID) which are pretty important for database transactions.
REST vs SOAP
REST APIs are lightweight making them generally better to use for Internet of Things, mobile application development, and serverless computing.
Often SOAP is used in legacy systems and avoided in newer systems because of it’s rigidity. SOAP is very specific with requiring XML messaging. Most public APIs follow REST guidelines.
|– few operations with many resources||– many operations with few resources|
|– focus on scalability & large scale performance||– focus on design of distributed applications|
|– Focus on HTTP methods||– SMTP, HTTP POST, MQ|
|– self describing xml||– strong typing, xml schema|
|-synchronous||– synchronous & asynchronous|
|– https||– ws security|
|– end to end communication||– secure origin to destination communication|
REST is the preferred option for many companies because it’s easier and more flexible, but there are still quite a few large enterprises that may prefer SOAP.