What does API really mean?
The acronym API is widely used in our industry. What does it mean when a system has an API and why is it so important?
Everyone working with digital products will sooner or later come across the term API. The acronym is used very frequently in our industry, but it is far from everyone who knows what it means.
What does API stand for?
So let's start with what API stands for: Application Programming Interface. Are we any wiser now? Not really.
Let's start with a software that has been developed to perform a specific job. It could be to control the temperature in a refrigerator or to fly a spaceship to the moon. The software consists of a set of instructions that carry out the job.
If the software is intended for human use, there are buttons and displays to adjust the refrigerator climate or levers and steering wheels to control the spaceship.
What happens then if we want the software to be controlled by another software? Then we need different interfaces than levers and buttons. In this case, an API is needed. An API is thus an interface for other applications, hence the name Application Programming Interface.
Example of an API
We haven't built refrigerators or spacecraft at Future Memories, but we use APIs daily. Imagine if Electrolux reaches out to us wanting help to display important messages to the public on refrigerator screens.
Then we write our own software that retrieves this data from krisinformation.se. Fortunately, they have an open API where anyone can fetch current emergency warnings or other important information for the public.
If you click on http://api.krisinformation.se/v3/notices you have actually made an API call and retrieved the latest notices. It's a bit difficult to read for a person, but it's quite easy to write a program that reads this text and displays it in an appealing way on a fridge display.
Open data
The Internet Foundation defines open data as follows:
Open data is data that anyone can use freely, and it is the key to the development of many smart and useful community services. Everything from efficiencies in healthcare to practical information about public transport and school menus is based on open data.
Open data is based on open APIs. We at Future Memories advocate for open data and develop our solutions with open APIs. This enables other systems to be easily integrated with our systems and for data to flow between the systems so that it can be utilized and displayed in the right context.
Unfortunately, there are many traditional system providers who have built solutions without APIs, thereby deliberately locking in their data. Often, there is an outdated business model at the core where the system provider charges a good amount for extracting data in the form of CSV or Excel exports. Fortunately, there are many new product companies that build open services where data can be consumed and sent via APIs.
Document APIs with OpenAPI aka Swagger
However, as a system developer, how does one know which commands can be sent to another software? Fortunately, there is almost always a manual for each API, a so-called API specification. This manual describes the calls that can be made, the data that can be sent, and what the format of the responses from the API will look like.
Over the past few years, the OpenAPI specification has become the de-facto standard for how developers document their APIs, and we also document our APIs with OpenAPI. OpenAPI originated from a framework called Swagger which became OpenAPI in 2016.
What is a REST API then?
In connection with software projects, developers often use the term REST API. REST stands for REpresentational State Transfer and is a convention for how an API is structured. A REST API should roughly function like a regular webpage: the information should be accessed via links. When looking at a document, one should be able to move on to related objects similar to navigating from one webpage to another.
The big difference is that the format of the 'pages' looks different. Instead of a web page, a REST API returns documents in machine-readable formats. XML and especially JSON are two common formats that are used extensively.
Why are APIs so important?
Whether it's a small app or a large business system, it's common for data to be stored in various systems: a customer database here, a CMS there, analytics data in another place, etc. APIs enable us to retrieve, intersect, and refine data. A system from which data cannot be extracted is usually referred to as a data prison.
So make sure that your system landscape consists of systems that offer APIs instead of locking their data in. Let data flow freely in your organization!