As a follow up to my recent post on PaaS I thought I’d continue the series by sharing the second short paper I wrote for my Communications Technology Convergence study. In this paper I decided to explore API; what they are, their origins, and their use. The read provides a light primer for individuals seeking to understand what an API is, and how it is utilized to develop software in a converging communications environment. Enjoy!
Application Program Interface
API is short for Application Program Interface or Application Programming Interface. It’s commonly understood that an API provides the commands, functions, and protocols that allow a developer to develop software for a specific platform. All common operating systems (Mac OS, Windows, and UNIX) contain an API (TechTerms, 2015). This piece of writing will examine the origins of API, how APIs are used, and briefly touch on some of the common pitfalls that hinder adoption of newly created API.
The origins of APIs are a bit obscure in the history of computing, theories about the genesis of APIs abound, and some sources suggest its origin to reside during the 1990s; when the Dot-Com bubble burst (Lane, n.d.). Lane was discussing API used exclusively to power Service Oriented Architecture (SOA), but that begs the question of which specific type of API is being discussed. Other sources would point to proprietary API developed in the 2000s by businesses such as eBay and Salesforce; for submitting large listings of products (Willmott, 2013). Clearly API were used for other purposes far before SOA became ideal, systems had to talk across platforms before the Dot-Com event and developers required a method of making that happen. The origins are fuzzy but this doesn’t steal from the importance of APIs being used in the modern landscape of communications technology.
APIs make available “some of a program’s internal functions to the outside world in a limited fashion. That makes it possible for applications to share data and take actions on one another’s behalf without requiring developers to share all of their software’s code” (Proffitt, 2013). Essentially, without APIs the internet (as we know it) would not exist; let alone the beautiful cloud that powers seemingly all of our modern interaction through big data service providers such as Facebook or Twitter. APIs bring our world together by asking programs, using “…a set of standardized requests…” that are “defined for the program being called upon. Almost every application depends on the APIs of the underlying operating system to perform such basic functions as accessing the file system. In essence, a program’s API defines the proper way for a developer to request services from that program” (Orenstein, 2000). By providing this service through APIs developers get to protect their intellectual property while allowing critical communication across platforms. To successfully achieve this goal requires forethought, and careful design.
Poorly designed APIs, or limited availability protocols put in place by their owners, can cause challenges for developers attempting to interact with foreign systems. APIs that are not well conceived are destructive to the growth of any company reliant on technical interaction with its services, it pays in the end to create APIs as an intimate part of a providers offering; to be effective it must be open an interoperable (Nucci, 2009). Rapidly changing versions of an API can be an impediment to use, developers will have to test interoperability more often creating inconvenience (Nucci, 2009). Alongside avoidance of being overly rapid in release of new versions of the API is to maintain the realization that developers attempting to interact with a system may not be abreast of the changes being made. If the provider doesn’t possess a simple and expedient method of communicating these evolutions they may impede interoperable design and use of applications. Exercising good design sense, and remaining focused on the end goal of enabling use, will go a long way in ensuring the successful adoption of a unique API.
In conclusion, APIs are the glue that hold together the various communication networks and software platforms that populate the modern communications technology habitat. The origins of the technology are obscure, but their necessity in our modern networks is crystal clear. The web without its network of APIs would cease to exist in the same sense as we know it today. The payoff of carefully designing APIs as an essential part of a system are invaluable.
Unknown Author. API. TechTerms, 2015
Lane, K. History of APIs. API Evangelist
Willmott, S. What was the first API launched ever on the Web?. Quora, 2013
Proffitt, B. What APIs Are And Why They’re Important. Readwrite, 2013
Orenstein, D. Application Programming Interface. Computer World, 2000.
Nucci, R. The Top 10 Most Common API Pitfalls. TecCrunchIT, 2009