Are You Losing Sleep Over REST API?

Posted 9/15/2015 8:07:45 AM by SAMMY TAM, Cirrus Data Solutions

Are You Losing Sleep Over REST API?
REST API provides values in the places where it actually makes sense, and not because it is technologically chic.

In this day and age, “buzzwords” have been developed for almost everything. Since the web is full of information available to everyone pretty much everywhere, these terms are often picked up within relevant communities and greatly hyped. 

The software engineering community is, of course, no exception.
Just as “Software Defined Storage” has quickly gained popularity in the enterprise storage community, today’s buzzword is even more widely used and most active software developers have at least heard of – the “RESTful API.”  

REST API appears in software products in all different categories. From gigantic web applications like Twitter and e-commerce platforms like eBay, to WiFi-connected light bulbs and kitchen appliances, they all provide REST API. Many vendors even use REST API as an advertising plug. Given the euphoric enthusiasm it generates, one may be curious to ask, what is REST API anyway?
Well, REST API stands for “Representational State Transfer APIs”. 
Thank you very much. That explains everything! But, what is REST API really?
In reality, REST API is an application programming interface that allows access to an underlying resource over the network, through the web server – no more, and no less.  REST is an architectural style that provides standardized constraints on how these interfaces should be structured, such as naming conventions, authentication (stateless), etc.
The key word here is “constraints,” which means limits, which means you have to live within the agreed restrictions.
This architectural style sets compliance guidelines for APIs provided by different parties, but REST API itself is hardly a new technology or invention. It’s similar to the use of standard HTTP verbs, or naming the end-points (URL) with nouns only. These constraints make integration between different products more straightforward and efficient.
The web interface has been with us for a long time, and everyone that has ever accessed the Internet via a browser has communicated through the web interface. This is the same mechanism used by all these REST APIs. An HTTP request is sent and data is returned. Whether it is raw data or markup that a browser renders makes no difference in terms of technology. So why is REST API all of a sudden the talk of the town?
The main reason is because of – no surprise – the surge in popularity of the web, web browsers, and the Internet in general. The only reason why your WiFi-enabled light bulb can provide a REST API is because it is now connected to the Internet. Likewise, you can now access a data storage system via REST API mostly because it now also provides a browser-based user interface as opposed to a traditional command-line or desktop-based UI that communicates through closed proprietary network protocols.
REST API is just an interface. It’s a good interface standard/convention indeed, and it provides exactly what a programming interface does – it allows a product to be integrated programmatically, especially through the web, when appropriate and applicable.
One might consider this before asking questions like “does this product use REST API?” or asking in a job interview about whether or not “all the modules of your product talk via REST API?” as if REST API is some futuristic marvel of software that can be applied anywhere in any context - It’s not, and it can’t. 

“Using” REST API, whether as a consumer or provider, does not automatically make a product “ready for the future.” Rather, when it is applicable, it helps make a product more capable of interacting programmatically with other products or utilities.
Indeed, the availability of a set of REST APIs is beneficial as a product feature since it facilitates easy integration with external parties. But as you have probably realized by now, REST APIs do not necessarily make a product great. A great product that provides a good user interface naturally provides REST API. 
Personally, I do not believe we should pad the spec sheet of a product with “REST API” just to be fashionable. REST API should simply be applied to places that naturally make sense.  

In areas such as report generation and system monitoring/alerts that users and other developers can highly benefit from integrating to their 3rd party application, providing user-facing API that is REST-style compliant is highly desirable. 

Yet for many inter-module communications that are internal only, a set of strict REST-compliant APIs does not necessarily provide any additional value to the product over any other well designed and defined inter-module communication protocol.
In short, REST API provides values in the places where it actually makes sense, and not because it is technologically chic.

Read More


About the author: SAMMY TAM, Cirrus Data Solutions

Sammy Tam is a software engineer for Cirrus Data Solutions, a developer of data migration and caching servers for storage area networks (SANs). He received a BS in computer science from the University of New York at Stony Brook.

Subscribe to App Developer Daily

Latest headlines delivered to you daily.