In a Web Services, the Web technology such as HTTP, originally designed for human-to-machine communication, is utilized for machine-to-machine communication; more specifically for transferring machine-readable file formats such as XML and JSON.
In practice, a Web Service commonly provides an object-oriented web-based interface to a database server, utilized for example by another web server, or by a mobile app, that provides a user interface to the end user. Many organizations that provide data in formatted HTML pages will also provide that data on their server as XML or JSON, often through a Web Service to allow syndication. Another application offered to the end user may be a mashup, where a web server consumes several web services at different machines, and compiles the content into one user interface.
Representational State Transfer (REST) is an architecture for well-behaved web services that can function at Internet scale.
In a 2004 document, the W3C sets following REST as a key distinguishing feature of Web Services.
We can identify two major classes of Web Services:
- REST - compliant Web Services, in which the primary purpose of the service is to manipulate XML representations of web resources using a uniform set of "stateless" operations.
- Arbitrary Web Services, in which the service may expose an arbitrary set of operations.
A Web API is a development in Web Services where emphasis has been moving to simpler representational state transfer (REST) based communications. Restful APIs do not require XML-based Web Service protocols (SOAP and WSDL) to support their interfaces.