An API is an Application Programming Interface, defining how programmers access features in a specific application or working environment. SOAP stands for Simple Object Application Protocol and is the API and protocol for moving structured XML data between applications.
SOAP API Origins
The first proposed draft of SOAP was released in 1998 and was a proposal by Dave Winder, Don Box, Bob Atkinson, and Mohsen Al-Ghosein. It became a World Wide Web Consortium recommended protocol in 2003, with the 1.2 version, and its functionality was folded into the standards maintained by the XML Protocol Working Group. The 1.2 version, revised with errata incorporated as of 2007, is the current standard recognized by the W3C as of 2011.
SOAP is an extensible and “smart” protocol for exchanging data on the Internet. It sends all files as well-formed Extensible Markup Language documents, with explicit instructions within the document explaining how each set of tags would be interpreted. It relies on existing data transmission protocols, such as Hypertext Transfer Protocol and Simple Mail Transfer Protocol, for moving data between systems, allowing the protocol itself to focus on the structure of the data being transmitted.
SOAP’s API requires all data to be sent in Extensible Markup Language formats. XML can be thought of as a form of super-HTML Web language that allows developers to create custom tags to convey specific information. This allows any other application that recognizes well-formed XML to import the data, compare it to existing cataloging requirements, and import matching data types into their proper cataloging positions. This reduces errors by removing a window for typos and reduces data entry costs. An added benefit of XML-based messaging formats is that they remain readable to humans with a text editor; the protocols that SOAP largely replaced, CORBA and DOM, used a binary data format to reduce bandwidth.
Programming for SOAP
Programming to the SOAP API is an example of using smart, containerized data. Most of the techniques a programmer using the API has to master include trusting that the tags surrounding the data in a SOAP message will convey the correct information for loading the data. SOAP's XML files convey information in both a document header and a document body, much the way that HTML documents do, and much of the document definition is encoded in tags in the head elements.