What the dickens is an API?

William Woodhead
4 min readJun 25, 2018

Your tech person says these dreaded 3 letters in every meeting, as if talking about something as understandable as jam.

And you sit there nodding. The panic sets in. It has been said so many times now, it would be too embarrassing to interrupt and just say: Sorry, but what the dickens is an API?

By Tiberiu Ana — http://www.flickr.com/photos/txberiu/7875325192/in/faves-abaransk/, CC BY 3.0, https://commons.wikimedia.org/w/index.php?curid=23291758

So what the dickens is it?

Well it stands for Application Programming Interface. But these words are about as much use as an ejector seat in a helicopter.

Although, the word we can usefully unpack is Interface.

An interface is the part of any system that you can interact with: In your car you have the steering wheel, the pedals etc; for the mail system you have the post box; on your phone you have the screen.

An interface has two important characteristics worth noting:

  1. You don’t need to know how the system works internally to interact with it.
  2. It gives you feedback when you interact with it.

Too vague… example please

Let’s take your phone as an example. The screen is the interface with your phone.

So, you do not have to know how the phone works internally to use the screen. You can just use it. (characteristic 1)

And, you get feedback from the screen when you interact with it. (characteristic 2)

For simplicity, let’s divide our feedback into successful feedback and unsuccessful feedback. So when you press your pin-code into the screen, the successful feedback is that your phone opens, and the unsuccessful feedback is that it doesn’t, and tells you to try again.

So, an interface is the external part of any system that you can interact with, without needing to know about the internals of the system. And you get feedback.

But both a car, the mailbox and a phone-screen are human interfaces, ie. they are designed for humans to interact with their systems.

By Elborgo — Own work, CC BY 3.0, https://commons.wikimedia.org/w/index.php?curid=2841283

What happens when its not a human interface?

What happens when we need to create an interface that allow a tech system to interact with another tech system? This is when we have an API - a programmable interface.

So when I’m creating an app (Application) that is going to get the latest 100 tweets about NSYNC from Twitter, I can use the Twitter Progamming Interface or API to fetch this data, and display it in my own app.

Flickr Creative Commons / Breanna Herman

So let’s thinks about this:

  1. I don’t need to know anything about Twitter’s internal systems
  2. Twitter tells me how to interact with their systems with documentation (or user manuals)
  3. Twitter tells me what success/error feedback to expect

These three facts mean I can easily interact with Twitter’s systems.

One final intriguing insight…

The other important consideration is that Twitter can mess around changing all the internal of their systems, but as long as they don’t alter the API, everyone using the API won’t be affected.

In a similar way, car manufacturers can play around with optimising their engines as long as the brake pedal still slows the car down.

The internal system can change, but the interface stays the same.

Last word

In fact, my advice to any non technical person would be to think of all computer systems as being made of individual parts with explicit APIs that talk to each other.

So there we have it! You can now nod with a bit more sass in your next meeting with your tech person, and give them a steely gaze as if you say I’m on your side now…

https://media.giphy.com/media/gVoBC0SuaHStq/giphy.gif

If you liked this story, please 👏 and please share with others. Also please check out my company at www.pilcro.com. Pilcro helps startups stay brand-consistent across all their different marketing channels. You will love what we are up to!

--

--