Web services allow you to exchange information over HTTP using XML. When you want to find out the weather forecast for New York City, the current stock price of IBM, or the cost of a flat screen TV on eBay, you can write a short script to gather that data in a format you can easily manipulate. From a developer’s perspective, it’s as if you’re calling a local function that returns a value.
The key behind web services is platform-independent communication. Your PHP script running on Linux can talk to someone else’s IIS server on a Windows box using ASP without any communication problems. Likewise, you can talk to a box running Solaris, Apache, and JSP using the same sets of tools and interfaces.
There are two major types of web services: REST and SOAP. A REST request is relatively straightforward, as they involve making an HTTP request of a server and processing an XML document that’s returned as the response. Since most developers are familiar with HTTP and XML, the learning curve for REST is short and shallow.
The one downside to REST is that beyond these two conventions, there’s not much in terms of standards as to how data should be passed in or returned. Every site is free to use what it feels is the best. While this is not a problem for small services, if not designed properly, this can cause complexity when a service grows.
Still, REST is a very popular format and its simplicity is a key factor in its success. Recipe 14.1 covers ...