What is an API?
Did you know that a significant part of your digital experience is based on API-s? APIs are what help you to compare, purchase, save, select, post and log into various environments. APIs play an integral part in operating systems, desktops, mobile phones, internet of things, IT infrastructure as well as software development architecture. They are pretty much everywhere! This is why we have to talk about them.
The term API in itself is nothing new - even the older IT generation should be familiar with it. APIs are a cornerstone of software development, but today, the term has also become important to people other than developers.
If technologies usually become obsolete so quickly, then why is this 50-year-old concept such a hot topic? This is because API is something much more than a system integration technology.
Definition
API stands for application programming interface.
API is an interface that connects one software to another, which enables any two devices—machines, computers, pieces of equipment, applications—exchange information or forward commands.
APIs are everywhere. M2M or machine-to-machine APIs are technologies that enable background communication and forwarding of commands between devices. In addition, client-side user interfaces communicate with APIs. If communication with the server is necessary after any action by the user, the client-side software sends a background inquiry to API, and further steps depend on API’s reply.
Let us take ATMs for example. In order to fulfil its task, it must communicate both with the user and the bank. Communication with the user happens through a user interface, consisting of the screen, keypad and cash dispensing mechanism. You enter your PIN, the desired sum, and take the cash. In the background, the ATM communicates with the bank via API. If there are enough funds on the account, the API gives permission for the cash to be dispensed and then updates the account balance in the bank.
In this case, the direct user of the API is the ATM, not a person. The same holds true in the digital world. API is an interface used by software in order to access any resource it needs: data, server software or another application.
What makes a great interface?
Whenever we create a user interface for a software or website, we design it for a human being. It should be as simple, intuitive, and enjoyable as possible. However, how do we make sure that the information of this system would also be easily usable by another software? Software has no eyes, intuition or emotions, therefore it has no need for a graphic and intuitive user interface. Modern software does, however, need good APIs, which make data or functionalities simple and quick to use.
Do you still remember punched cards or dial-up internet?
The implementation of graphic user interfaces and the computer mouse in the 1980s changed the world. These developments made computers understandable and usable for everybody. How has API changed the world?
API has changed the infrastructure of IT
Module- or part-based construction, clear division of labour, outsourcing some components to other producers is very common in automotive industry or laptop computer production. The same holds true for modern software development, the keywords to which are modularity, service-based architecture and microservices.
APIs make microservices possible
In essence, the entire world of software development is like one internal API. Today, APIs are a part of good tone and good practice of professional software development. Components and modules are one the one hand separate and at the same time interconnected. The entire system is divided into as small as possible independent system parts (for a service or microservice) which communicate using e.g. web-based APIs.
So what?
Why is this good?
- Modular construction enables a faster and more flexible implementation of a project, since no single component is dependent on the others and one team does not have to wait for another to complete their job.
- A service-based architecture makes the modules usable in other programmes, which decreases both time and money needed for development.
- This approach decreases the overall complexity of the programme. This way, the code is formulated in a more comprehensive form and new team members have less problems continuing the work with it.
- A modular, API-equipped code is easier to maintain. APIs determine, which data in which form the module issues and which are entered into it. Errors are easier to find and APIs also help determine whether a module is performing as expected when transferring data, or there are issues. This way, APIs contribute to quality control—the delivered data is subject to preliminary inspection before moving to central testing.
- A service-based architecture helps to integrate services regardless of their programming language, platform or business processes, and by combining services create ones that offer new functionalities.