Table of Contents
Introduction
REST web service architecture is lightweight and has a simple interface. This architectural style works with set rules that describe how to define and address networked resources. This paper highlights the definition, history, reasons for invention, and applications of REST.
History
In the year 2000, Roy Fielding described the principles of REST as part of his doctoral dissertation. His objective for this invention was to use REST as an alternative to SOAP, CORBA, RPC, and JSON (Fielding & Taylor, 2000). From its configuration, REST is a style that differs with a set of standards. Therefore, the application or architecture is sometimes referred to as REST-style or RESTful. Currently, the architecture is a popular choice for web service implementation. To consider an application as RESTful, it must have the following characteristics: First, the functionality and state are separated into distributed resources. Second, each resource is uniquely retrieved or addressed using the same and minimal command sets, that is, the standard commands of POST, GET, PUT, or DELETE over the internet using HTTP. Finally, the REST protocol is stateless, layered, client/server-based, and supports caching.
Reason for Invention
Many developers describe SOAP as a heavyweight and hard-to- use platform. For instance, operating with SOAP in JavaScript involves writing thousands of codes just to carry out a basic task because there is need of creating the necessary XML structures almost all the time. However, REST simply relies on URLs. Web services that utilize REST obtain information by exclusively using URL technique (Gregorio, 2004). Otherwise, in other web services, one may be required to add information in particular ways.
Applications
As opposed to SOAP, REST provides responses to queries without having to rely on XML necessarily. It is possible to have REST-style web services that output data in CSV, JSON, and RSS. In simple terms, one can obtain the required output in a form that is easy to deconstruct within an application language needed. World Wide Web is based on HTTP and is an example of REST-based architecture. There is nothing that a person cannot do in web services when using RESTful architecture (Adamczyk, Smith, Johnson & Hafiz, 2011). While REST is non-standard, that is, W3C will never recommend it, it is simple, and one can roll it with standard libraries like C#, Java, PHP, Perl, et cetera.
Much similar to Web Services, REST is a lightweight programming approach which is independent of server platforms and you may not care whether the client is Mac and the server is UNIX, or anything else. It is also language-independent, where C#, C++, C, et cetera can connect to Java as well as other languages. It is also standard-based with the ability to run on the HTTP layers, and, lastly, it is applicable even in the presence of firewalls (Adamczyk et al., 2011).
REST does not offer built-in protection features, session management, encryption, and QoS guarantees among others. However, with Web Services, we can incorporate the above features by building on top of the HTTP protocol layer. In this case, usernames and passwords tokens are useful for security. Also, for encryption purposes, instead of HTTP, we can use REST on top of the HTTPS secure sockets. A good REST design does not require cookies since they are self-contained and every request transfers all information or data that the server may need to complete it or give feedback.
Reasons for Using REST
Here are some reasons for using REST. The advantages include its simplified implementation, scalability, and ability to reuse services (Gregorio, 2004). REST is one best practice that helps data to move smoothly through a system. To create a RESTful interface, you should understand URIs, formats, supported methods at each URI, and the status codes to should be returned.
The REST protocol does not require as much bandwidth compared to other protocols, therefore, it is the best fit for use over the web. Since REST is simple and lightweight, it enables easy communication between client and user sides. It has, therefore, become a popular cloud-based API building technique, for instance, those that Microsoft, Amazon, Google, et cetera provide. Any Web Service that uses REST application architecture is known as RESTful API. REST architecture is applicable in reading designated web pages containing Extended Markup Language (XML) file. This content includes and describes desired content, and once it is dynamically called, the consumers at the user end can easily access the interfaces using REST.
REST has various architectural constraints which include decoupling consumers from producers, its stateless existence, ability to leverage a layered system, a uniform interface, and a cache. It is often used in social networking, mashup tools, mobile applications, websites, and automated organizational processes. The RESTful technique emphasizes that a limited number of verbs or operations would enhance clients and services interactions. To increase flexibility, one may assign to resources (nouns) the unique identifiers or URIS. REST also has an advantage of ambiguity elimination because each operation has a particular meaning (GET, POST, DELETE, POST).
Advantages of REST
REST APIs have the following advantages: They are easily leveraged by most open source and less expensive tools. REST is now commonly used with RESTful web services where most cloud providers can distribute their services. The most chosen architecture for services exposed via the internet such as MySpace, Facebook, and Twitter, among others use REST protocols (Han, Kim, Jung, Yeom, Yoon, Park & Lee, 2009). Moreover, developers save time and money in developments with REST over other architectures since it is easy to learn. The message format becomes better, smaller and sufficient with REST. It does not require intensive processing, therefore, other than its better performance and reduced cost over time, it is much faster than SOAP. Finally, REST development enables it to operate over the web or open internet hence it is a perfect choice for cloud-based platforms as well as web or internet scale applications.
Conclusion
In conclusion, REST is likely to move forward in its growth as most enterprises and organizations seek to provide a well-defined and an open application interface and infrastructure services. Currently, the public and private growth in cloud computing are seeking REST; hence it will continue to boost and drive growth in the future Web Services.
- Adamczyk, P., Smith, P. H., Johnson, R. E., & Hafiz, M. (2011). Rest and web services: In theory and in practice. In REST: from research to practice (pp. 35-57). Springer New York.
- Fielding, R. T., & Taylor, R. N. (2000). Architectural styles and the design of network-based software architectures (p. 151). Doctoral dissertation: University of California, Irvine.
- Gregorio, J. (2004). How to create a rest protocol. URL http://www. xml. com/pub/a/2004/12/01/restful-web. html.
- Han, H., Kim, S., Jung, H., Yeom, H. Y., Yoon, C., Park, J., & Lee, Y. (2009, September). A RESTful approach to the management of cloud infrastructure. In Cloud Computing, 2009. CLOUD’09. IEEE International Conference on (pp. 139-142). IEEE.