OK I'll admit it: I'm an API-oholic. I'm addicted to APIs. In the nerdy tech world, APIs are old news, but to most regular folks, the term APIs is just a confusing acronym. It is my goal to de-mystify the API a bit in this post, and explain how APIs are changing the world in very real, tangible ways that will matter to you.
First, a definition and a bit of history. API stands for Application Programming Interface. That's also a pretty incomprehensible set of words to most people. So let's simplify: For the purpose of this blog post, think of an API as a key that opens a door to a room you really want to get into.
Let's take this fantasy analogy a bit further. Let's imagine that there are rumors that there's an island in the Pacific ocean that's inhabited by a previously unknown group of humans which have never before had contact with the modern world. They don't speak English, but it just so happens that their little island is known to have a tremendous stockpile of diamonds and gold. There's a mad rush by many people to figure out where this island is located so they can lay claim to its natural resources.
But the inhabitants of this Secret Island are smart. They know how valuable their gold and diamonds are, and they know that by allowing the modern world to find them, they'll be in danger. So they send an ambassador to strike a compromise, and that ambassador happens to find you (imagine the odds -- it's your lucky day!)
The ambassador tells you that the entire modern world can communicate with their island through a special interface they've set up. And they will answer, but only if the communication happens on very specific terms -- their terms. They won't answer to any random requests.
This interface he gives you happens to be through a computer terminal. Well, that's convenient, they know how to use computers.
This ambassador gives you a special URL through which you can contact his people. It looks something like this:
That wasn't so bad, right? Well congratulations, you just parsed a real API request -- the new Census Bureau's API, which is detailed here. But let's stay in fantasy land a bit longer before we return back to the real world.
So why is this such a big deal? Well, every database is like that Secret Island, full of diamonds and gold that others want access to. And throughout much of modern technology's history, there has not been any good way to give others access to a company's data without running the risk of it being accessed inappropriately. In fact, earlier in my career I worked for GE's Electronic Data Interchange business, where we did a lot of data mapping. One company would provide access to their data in a very rudimentary, proprietary way, and we had to map it to another company's database structure. It was a mess, and GE had an entire business to help companies communicate with each other. This is the way the world used to be.
But the rise of APIs is incredibly exciting because it gives all of these companies ways to give the world access to their Secret Islands -- their data -- in carefully structured ways. And that's what Application Programming Interface means: A set of instructions that says "if you get a key from us, and you use it responsibly, we will continue to give you carefully structured access to some of our data. You won't get access to everything, but we'll give you some of it, and if you behave yourself and prove yourself to be reliable and trustworthy, we may then decide to give you access to more of it."
This means that, for the first time, creative people can start getting bits of data from various Secret Islands and use it. And that is a big deal for a number of reasons. Let's explore them:
Reason #1 that APIs are a big deal: Data Mashups
Being able to get Secret Island data from various islands and mash it together means you can start adding context to data, and you end up with a scenario where the whole is greater than the sum of the parts. HousingMaps is an example. It mashes Craigslist data up with Google Maps. Click here to see seven other great mashup examples.
Reason #2 that APIs are a big deal: Focus on what you do best, and outsource the rest
APIs let you focus on what you do best as a business. Our company, Socialize is a great example of this new breed of API offering. We have a drop-in social platform offered as an API and SDK which lets any mobile app developer instantly create a social platform inside of his app. So a developer can do in minutes what would otherwise take months or years to do, and since it's all we focus on, we do it better than he ever could. Start looking for more of this "do what you do best and outsource the rest" attitude to start permeating business more and more as people get used to the idea of offloading non-core parts of their processes and infrastructure to others.
Reason #3 that APIs are a big deal: Work more efficiently internally between teams inside companies
But why stop at using APIs externally? Really progressive companies are starting to use APIs to make communication between internal departments more efficient. Is the marketing department always bugging the engineering department for last month's growth numbers? Just create an API for them to consume instead. No longer will engineers feel like they have to drop whatever they're working on to respond to the marketing department's requests. Amazon is a best-in-class leader in this area, and I wrote a blog post about it previously. The really great side benefit you get from this approach is that if an API is popular internally, the company can better document and bulletproof it for public consumption. The Socialize executive team talked about our internal use of APIs recently in this infrastructure video.
Reason #4 that APIs are a big deal: New channels & revenue sources for companies
This one is really progressive, but looming on the horizon in such a way that businesses that ignore it do so at their own risk: Whatever your business is, if you offer a digital product of any type, you need to consider re-packaging it as an API. Let me give you an example: Let's say you run a software company that helps people manage their finances. And for the past 30 years, you've been shipping this software in a box, and it's typically been purchased at retail outlets. Business is good, but where do you expand from here? Well, what if you turned your finance-management tools into an API? This would allow others to gain access to it in new and creative ways. Maybe I'm a mobile app developer and I create a car shopping app. I might include functionality from your API in my app so that my users could calculate the monthly payment of a new car, and then see if they have the funds available to afford that vehicle over the life of the payments. Even better, your API might let me offer my users ways to contact various banks to get quotes for a car loan. In this way, you as the financial company offering the API are creating entirely new channels of business.
Reason #5 that APIs are a big deal: Others are more creative than you
What the top four reasons boil down to is that almost always, the world at large will find ways to be more creative than you, and you'll find that by exposing your diamonds and gold -- your data -- in a structured way via an API, it will be mashed up and used in ways you could never have imagined. That's what innovation is really all about, and we're about to see an explosion of it with the coming onslaught of APIs.
If you're curious to learn more, I talk more about the rise of APIs in my 45 minute talk about why I believe mobile is way bigger than most people imagine.
Oh, and kudos to our government for requiring that every federal agency create an API. It's not often that we see our government being more progressive than private enterprise. We'll see how they do on the execution side of things.
WOW I'm checking Zapier out and it looks incredible. It's basically an API mapping layer.
Here's an example of a trigger I could create:
When a new activity happens in Pivotal Tracker, Send me an IM.
Here's another great example of API mashups to determine whether to ride a bike or take the tube to work: http://blog.oftcc.net/post/39219681688/the-bicycle-barometer-takes-data-about-the
This is BEAUTIFUL.
Over the last week, I've gotten turned onto programming/coding/development, and as i'm wading into it, a lot of it sounds like jibber-jabber. But this lays API's out in such a clear way and THEN lets me know exactly what I could do with them.
AWESOME job. I'll be coming back here more often.
Being embedded squarely in the middle of the fast-growing mobile revolution, our company has a unique perch which I've wanted to codify into a vision document for some time. I finally found time to do it, and the resulting video is below, along with the slides below that. I'd love your thoughts & comments on what points you agree or disagree with, and why.
Here's the video:
If you want to play the video faster, say at 1.5x speed, you can download it from the vimeo site (here's where you download it from).
Here's the transcript:
You get lots of Sencha tutorials all over the web but a very handful of them actually teach you how to follow specific guidelines while developing a medium level Sencha project. Often I see Sencha Touch projects from different programmers with hardly any planning and architecture of code and hence an absolute unmanageable code base. So, here I am listing some simple Sencha Touch coding guidelines following which will greatly help you manage your Sencha Touch apps:
1. Always have a Utility file
It is recommended to always maintain a Utility file in your application. Here we can manage all general information like API url details, function to handle errors, showing alert messages etc. You can make it a singleton class and put it in a separate “util” folder under “app”.