SOAP is a protocol for sending/receiving data over HTTP as XML.
A typical WebService will be a few methods an WSDL that describes how to call it. There’s no real convention for how these should be structured, so you always need lots of API documentation.
Typically this will be something like (for ASP.NET):
- HTTP
POSTto mysite.com/products.asmx/ListAllProducts – returns XML list of products - HTTP
POSTto mysite.com/products.asmx/GetProduct – returns XML for product based on SOAP XML in the posted content - HTTP
POSTto mysite.com/products.asmx/UpdateProduct – changes product based on SOAP XML in the posted content
REST is more of a convention for structuring all of your methods:
- HTTP
GETfrom mysite.com/products – returns XML or JSON listing all products - HTTP
GETfrom mysite.com/products/14 – returns XML or JSON for product 14 - HTTP
POSTto mysite.com/products/14 – changes product 14 to what you post in the HTML form. - HTTP
DELETEto mysite.com/products/14 – removes product 14 - HTTP
PUTto mysite.com/products – adds a new product
So REST works more like you’d expect browser URLs to. In that way it’s more natural and as a convention is much easier to understand. All REST APIs work in a similar way, so you don’t spend as long learning the quirks of each system.