Title: What is an API? Date: 2015-07-21 12:38 Author: eamonnfaherty Category: product Tags: architecture, api Slug: what-is-an-api
Software systems are built to perform an action. For example, there are software systems that calculate tax, allow you to place an order or send an email.
It is very easy to think of software systems where the end user is a human. There is another type of user that exists - other software systems. For example, the software system that calculates tax may use another software system to discover the current rates of tax, the system that allows you to place an order may use another software system to get calculated delivery costs or the email system may use another software system to store address book / contact details - this is where APIs become very useful.
When a human user interacts with a software system they may view and click items on a webpage or within an application. They may even use their voice or perform a physical guesture to interact with the system. This is described as the graphical user interface (or GUI). Other software systems can also perform these actions using the same interface. However, these interactions have been designed to cater for human users. Software systems and human users are very different to each other. Software systems can communicate much more concisely and efficiently than human users can. Also, not all systems have need to cater for a human user.
API stands for application program interface. It is a way in which software systems send each other messages.
In the tax calculator example a human user would click the mouse cursor inside a form field and enter the salary, they would then enter their tax code and then eventually click submit. This is three interactions with the interface. If another software system wanted to communicate with the tax calculator it would send all the information and the instruction to perform the action in one interaction. This is much more concise and efficient.
So far I have identified the following concepts:
Interface - a way in which a user interacts with a system Graphical User Interface - a way in which a human user interacts with a system Application Program Interface - a way in which a software system interacts with another software system
There are many different styles of API in existance. Some are built on standards and consider more aspects that others. I will describing some of these in future blog posts so stay tuned for updates!