APIs, these new generation programming interfaces are changing the dimension of machine-to-machine communication, causing a major shift in the pace at which software applications integrate and interact with each other. Owing to the benefits offered by these interfaces, the API usage is proliferating in all sectors. According to programmableweb, a popular news source for Internet-based APIs, as of January 2018, there are approximately 19,000 public APIs in all sectors and an average of 172 new APIs being added every month. There are three different categories of APIs, private, partner, and public. Private APIs are for use within the organization, partner APIs are for use by specific business partners, and public APIs are openly accessible. The number of private and partner APIs in use today could greatly exceed the number of public APIs, making their footprint immense.
The current day APIs evolved from procedural language libraries through decades, creating major innovations in e-commerce, social networks, cloud, and mobile technologies. APIs are widely known among web and microservices. With the advancement in network virtualization, the network interfaces are shifting from physical to programmable, making the role of APIs more prominent. These interfaces are also playing a major role in distributed networks like Internet-of-Things (IoT) and software-driven network technologies like Software Defined Networking (SDN) and Network Function Virtualization (NFV).
There are three important stages in the life cycle of an API, developing a specification, implementation, and consumption. The first two stages of the APIs may be implemented by the same organization or by two different organizations. For certain APIs, the specification development and implementation may be done by the provider, for another category of interfaces, the first stage may be implemented by a consortium and the second may be performed by a vendor. And in either scenario, the third stage will be implemented by a consumer who develops applications, based on the API specifications, to integrate with the provider.
APIs are meant to be consumed by the users to utilize the services of the providers, just like how a power plug utilizes the electricity provided by the power socket. For the electricity to flow from the socket to the plug without any hazard, they both have to be reliable entities. The provider has to exactly implement what he specifies, imagine what happens if the provider specifies 110 volts of electricity and sends 220 volts through it. And the consumer has to strictly abide by the specifications of the provider, using a 110 volts capacity plug for 220 volts socket will burn out the endpoints. APIs are similar to these power interfaces.
The role of APIs is crucial, failure of these interfaces will cause huge losses both financially and by reputation to the providers as majority of their services rely on these programming interfaces. Huge and crucial information transmits through these APIs, it is important that the interfaces and integrations are highly reliable. The major factors that dictate the reliability are conformance to the specifications, functionality, performance, and security.
It is important that we ensure the APIs are robust and ready for the unexpected. In the next post, I will take a deep dive into the best practices for ensuring the reliability of APIs and their integrations.