This is the start of 3-post series about REST (Representational State Transfer) Services.
Internet has currently a huge amount of information that is increased on a daily basis, and its growth rate is faster than its display rate. Internet contains not only information to be checked by humans, but also to be exchanged by automatic systems. Therefore, there’s a need to organize the information in the cloud, so the programs can upload, share, search, find, and monitor information for different sources, such as sales data, financial information, marketing campaigns, etc.
A need is arising to look for the way to make complex things easier. And that’s the philosophy that lays behind the REST (Representational State Transfer) Services, which are not a standard, but a way to organize network systems architectures consistently in clients and servers.
There’s also a trend in the automation world to enable process information in the cloud, particularly in geographically distributed environments. This can be the case with Smart Cities, which must collect different measurements from sensors distributed in the city. Sensors include usually a hub able to share the information via WiFi or GPRS, but smart sensors are also emerging with the ability to implement a direct communication by Internet to share their measurements or to be remotely configured. While these sensors can communicate by means of simple protocols like HTTP, they are not able to run custom code, so the way to share the information must be defined simply and through standard protocols.
REST Services define architecture principles which establish focused Web services in the system resources, including how to access the condition of these resources.
REST (Representational State Transfer) is gaining a significant share in the Web as a simple alternative option to Web Services based on SOAP (Simple Object Access Protocol) and WSDL (Web Services Description Language) because they are easier to use since this model shows the services as resources.
REST was described for the first time in 2000 by Roy Fielding in his lecture about the principles of network system architecture. According to Fielding’s definition, “Representational State Transfer is intended to evoke an image of how a well-designed Web application behaves: a network of web pages (a virtual state-machine), where the user progresses through an application by selecting links (state transitions), resulting in the next page (representing the next state of the application) being transferred to the user and rendered for their use.”
In other words, REST allows enables access the Web contents represented as the condition of a resource from which it can be developed or transferred to another resource or another resource condition.
A resource can represent anything that may be described by its condition or content, from the bill of materials of a company to details about each material on the list. A resource is a concept and its representation is the specific expression of the resource. For example, Amazon or eBay have their sale items as resources in their pages, i.e., you can access each sales item from a client through REST services.