What is SOAP (Simple Object Access Protocol)?
SOAP (Simple Object Access Protocol) is a messaging protocol that comprises a strict set of rules governing data transfer between clients and servers. It uses the XML message format exclusively so as to facilitate a standardized exchange of messages across any platform.
Implementing a SOAP API requires careful planning as SOAP exposes application logic in terms of services, where data can only be obtained by calling XML-defined, name-spaced operations, carried out server-side. A SOAP-based messaging system will describe services and functions that can be accessed by a client only if it closely follows the same rules (e.g. matching data types) set by the server. In other words, SOAP presents a tightly-coupled contract between client and server.
As a protocol, SOAP offers a complete suite of features for developers to implement as they see fit, including error-checking, data integrity and security, success/retry logic, and end-to-end reliability. These features are optionally applied with the use of SOAP extensions such as WS-Security, WS-AtomicTransaction, and WS-ReliableMessaging. Although it is limited to sending and receiving XML messages, SOAP can traverse multiple transport protocols including HTTP and SMTP, amongst others.
Owing to its more complex implementation than, say, a REST messaging framework, SOAP is mainly used in enterprise environments where there is a strong need for security and high-fidelity distributed transactions. For example, banking and e-commerce applications may find SOAP to be more applicable than a REST-based alternative.