Application Program Interface
If you’re a program or project manager, regardless of industry, you’ll likely encounter the acronym API. API stands for Application Program Interface. In plainer language, it is how software applications talk to each other; exchanging information and data. Program Manager API skills are a crucial for both program and project management careers.
APIs are ubiquitous. (That’s a big word.) They’re everywhere. Here is a sample of familiar apps and online companies that publish APIs: Facebook, National Public Radio or NPR, Google Maps, Weather Channel, and ESPN. A developer can write software that exchanges information with these and countless other apps. For example, with NPR, you can create a station finder service and publish it on your own website. Of course, one must comply with each company’s terms and conditions, including branding and security. We certainly have no shortage of news about mismanaged information. Expect scrutiny from these companies on how and why you use their data.
Okay, we made it through the API acronym. It gets worse. How about HTTP, REST, JSON, and OAuth. Ugh! It’s like a secret handshake to get into the API club. I’ll do my best. If you’re an expert on these topics, please turn away. I may mangle the details and turn this into an API horror scene. However, my goal is to help program and project managers be conversational. They know how to find experts in their professional network.
HTTP stands for Hypertext Transfer Protocol. Um, forget I said that. HTTP is a way for software applications, often web browsers like Chrome or Firefox, to make a request to another software service and expect a response to its request. Figuratively, I need some information. Ok, here it is. Or, I want you to store some information. Ok, I’ll do that. Example requests may be in the form of GET, PUT, POST or DELETE. I want you to GET me the NPR station list. Ok, here it is. Or, I want you to PUT my station in your database. Ok, I did. // See, this is not so scary.
REST is a common term and you’ll encounter it often in the API world. REST stands for Representational State Transfer. Informative name, right? REST enables software applications to talk to each other without worrying about details like browser choices (Chrome versus Firefox) and numerous other technical details. It enables computer systems to seamlessly interact with other systems across the web. Here are a couple of REST guideless to make it real. First, the user interface is separated from data storage specifics. This allows the user interface, like your web browser interface, to not be held hostage to a specific data storage scheme; kind of an internet democracy. Second, interactions should be stateless. In other words, to interact through an API, an application need not remember a past scenario to complete its current request. Think of it in human terms. If you initiate a conversation with someone, it will be irritating if the person refuses to talk to you until you recount all prior conversations. I’m sure you will think, why bother. The same applies to software applications. If it is too much trouble, let’s skip talking to NPR through an API. And, your web experience is diminished
Security is critical. OAuth, open authorization, is a way for users to grant access to some of their data without sharing their password. For example, if a software application wishes to access NPR information or resources, the application must be authorized as a client along with a secret that uniquely identifies, and authenticates, the software application. Afterward, the app receives a token granting access through the API. It’s elaborate, and it works. Think of granting someone access to your home. You need to know their identity, the purpose of their access, which rooms they can use, what they are allowed to leave or take out of the house, and then provide a house key.
I’ve used National Public Radio, NPR, as an example. Their API web site is relatively easy to understand and can be found at dev.npr.org.
In our digital world, APIs make the world go ‘round. You’ll even hear the term API economy; referring to an organization’s ability to fulfill their mission and exchange economic value, on a digital basis.
If you’re planning a program or project management career, you’ll inevitably be asked to manage some aspect of the API economy. Go for it; and learn to speak API.