You might be more familiar with APIs than SOA but they had another meaning not very long ago.
The full episode tells how I used to program for DOS and how that is different from using APIs. Make sure to listen and subscribe in iTunes to get future episodes too automatically.
A big part of learning how to program Windows was actually learning about event-driven programming. But that’s another topic. A lot of the event-driven details are hidden from you these days with modern languages and programming platforms. If you ever need to program like this, then when you’re not sending event messages to various windows, you’ll be calling methods built into the operating system. Actually, even sending messages means that you’ll need to call a system method to send the message. All of these methods and the messages too are the documented way that an application can interact with Windows.
All of this ability to work with the operating system is called the Application Programming Interface or just API for short. If you write your own application that allows others to write code to interact with your application, then you’re providing your own API. An API really just means whatever mechanism is used by another application to programmatically make requests and send and receive information.
This is different from a GUI which is the Graphical User Interface. Or as it’s often known today as just the UI which is the User Interface. The user interface, whether graphical or not, is how a user interacts with your application. And that’s different from how a programmer writes another application to use your application. Programmers use APIs.
Sometimes these APIs might be referred to as low-level APIs or system APIs to distinguish them from a newer meaning that’s grown popular in the last several years.
It’s common now for API to mean something very different. When you want to write an application to interact with a web service, you’re getting into the newer meaning. Let’s say you wanted to write an application to gather tweets from Twitter and present them in some cool new way. How are you going to get the tweets in the first place? You’ll need to ask Twitter for them. But you’re not going to make a call directly into some method running in some dynamically linked library in some server operated by Twitter.
Instead, you request permission from Twitter to be able to make web service requests on behalf of some Twitter user. The new meaning of APIs usually means that you’ll be making REST calls and getting back either XML or JSON formatted information. All of that will need to be in a future episode.