A modern application lives or dies based on the availability of its public API. Before having a deeper look into what API’s mean to us, and how they can be used in the most effective way, we should understand the basics.
API (Application Programming Interface) is an interface that allows the application data and functionality to be reached, as well as allowing for further programming of the program or a part of it, for example in regards to standard libraries. These interfaces can function on a very low level and deal with the inner functions of the application itself, for example calling open source libraries within the system. However this article only covers public API’s that are expandable or can be integrated and allow for the application data to be used in a variety of different ways.
Traditionally API’s have been considered to be an internal part of the application, or at the very least to be used as a means to integrate something to the application. Modern applications act as services, and this is why it’s important to make sure that expanding the system is just as easy as is the use of the data included in it. Modern applications use and offer a multitude of interfaces, for example social media applications like Facebook and LinkedIn are mainly run on interfaces with separate user interfaces built on top of them (e.g., browser, mobile, etc.).
In an API-centric architecture the applications connect to each other over these interfaces. How a single application has been built doesn’t matter as long as it follows the general practices in its interfaces. API-centric architecture also makes it easier to create device independent applications, so that for example the application can be run on multiple mobile operating systems using the same interface on them all.
Using general practices and de facto standards when connecting applications and using the data via different applications makes the whole process easy.
One of the main ideas of an API-centric architecture in that the interfaces are publicly available and that they contain a comprehensive documentation. Even a good interface will go unused if it’s hard to use or lacks documentation completely. In the best case scenario all the information and logic of the application can be reached via the API. This makes it flexible to connect, integrate and expand the system with needed applications.
Public API doesn’t however mean that all the information within the system would be publicly available. API calls are always authenticated so that the user will only have access to information they have credentials for.