An Introduction to API

I found this great piece of art at The Chocolate Muffin Tree.

I found this great piece of glue art at The Chocolate Muffin Tree.  The Chocolate Muffin Tree is a fantastic art blog focused on being a creative outlet, and inspiration, for those seeking to grow a creative life with kids.  Check it out!

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.

Sources Cited:

Unknown Author.  API.  TechTerms, 2015

http://techterms.com/definition/api

Lane, K.  History of APIs. API Evangelist

http://history.apievangelist.com/

Willmott, S.  What was the first API launched ever on the Web?. Quora, 2013

http://www.quora.com/What-was-the-first-API-launched-ever-on-the-Web

Proffitt, B.  What APIs Are And Why They’re Important.  Readwrite, 2013

http://readwrite.com/2013/09/19/api-defined

Orenstein, D.  Application Programming Interface.  Computer World, 2000.

http://www.computerworld.com/article/2593623/app-development/application-programming-interface.html

Nucci, R.  The Top 10 Most Common API Pitfalls.  TecCrunchIT, 2009

http://techcrunch.com/2009/11/08/the-top-10-most-common-api-pitfalls/

Advertisements

3 comments

  1. Pingback: An Introduction to API - https://teknicalgrit.wordpress.com/2015/08/01/an-introduction-to-api/
  2. Pingback: This week in API land, 19th edition | Restlet - We Know About APIs

Join the fray...

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s