In continuation to the previous post, in this post we shall see two different types of web services- Representation State Transfer(REST) and SOAP.
Representational State Transfer (REST) Services as based on a conventional use of the HTTP protocol methods to represent query, create, update and delete actions for a specific resource. This approach is mostly used to provide a mechanism for exposing services that represent business functions to be consumed by the user interface part of the application. REST Services are also often used for communication between services in a Microservices architecture. However, is not necessarily a good practice to directly link REST services together, because of a possibility that the result would be a complex failure-prone network of dependencies between services.
SOAP Services are based on a set of W3C standards that describe service as an abstraction layer for various business functions to be consumed by other applications.
The architectural differences between REST and SOAP services are:
- Front-end to back-end communication mechanism within a given application (primary REST use cases).
- REST Services are usually focused on providing fast response times.
- Back-end to back-end communication mechanism between different applications (primarily SOAP use cases).
- SOAP Services are usually focused on providing an appropriate level of standardization and systems isolation, so design flexibility is usually more important for them.
- SOAP Services are capable of providing transport protocol independent security enforcement across a chain of service interactions.
- SOAP Services can utilize asynchronous interaction patterns and provide transaction management capabilities.
The primary reasons SOAP services are best suited for system integration purposes are their standardization and design flexibility.
The primary reasons REST services are best suited for back-end to front-end functionality exposure are their implementation simplicity and performance benefits.