At some point in the recent past, you may have heard someone mention the term “API.” You probably recalled hearing this term before, and had some idea of what it meant. Perhaps you nodded knowingly, making a mental note to look it up when you got back to your desk. Maybe you followed up on it, or maybe you were distracted by the coffee brewing in the break room. It happens.
Fear not! Now that you’ve found this article, in the next few minutes you will learn the basics of APIs—what they are, why they are useful, and the place they have in your universe.
Definitions, and a Little History
API stands for “application programming interface,” a name that doesn’t help you understand the concept at all. Before diving into those details, let’s review a little history.
In the old days, most computer programs had to be built from the ground up. Programmers had to worry about allocating and releasing memory, configuring communication ports, opening and closing files, and all manner of fussy stuff that made programming tedious and error-prone. Then someone got the brilliant idea that programmers could be more productive, and their programs less buggy and easier to maintain, if a lot of that minutiae could be hidden in some way. Using a concept called abstraction, the fussy details were bundled together under higher-level functions and modules that expose only as many options and parameters as the programmer needs, so the programmer can focus on making the program do something useful. Thus was the API born.
There are many types of APIs, such as:
- Operating system APIs, which enable programmers to access OS functions, such as file access and manipulation and folder creation, without having to know the low-level details of disk access.
- Web APIs, which enable programmers to leverage data and functionality provided by websites, without having to recreate that functionality themselves. For example, if you’re building a website that uses geolocation information (i.e., maps), instead of compiling a map database and building a rendering engine yourself, you can just use one of several Google Maps APIs that Google provides.
- Hardware APIs, which enable programmers to interface their applications with hardware devices. For example, if you were developing a USB postal scale, instead of (or in addition to) writing end-user software to go with it, you could write an API and license it to other developers, who could develop applications that use your scale.
There are lots of other types of APIs, but you get the idea.
APIs and You
So how can APIs help you? Here are some ideas:
- APIs are inherently reusable, even across different programming languages. If you are developing multiple applications, even internal business applications, that use some of the same functionality, you might build an API for use by all the applications, rather than reinventing the wheel each time.
- APIs can provide an additional revenue stream. Taking the hardware and web examples above, if you are developing web or hardware functionality that could be useful to others, you can develop an API and charge license fees for its use.
- Licensing others’ APIs can be a cost-effective alternative to developing low-level functionality yourself. If your application needs to interface with another manufacturer’s hardware, you may have no choice but to use their API.
So now you know enough about APIs—what they do, and how they can help you—that you don’t have to pretend to know what someone is talking about when they mention it. You can still look it up and get more details, or you can grab that extra cup of coffee.