API Stands for Application Programming Interface
API is a software intermediary that allows two applications to talk to each other. Each time you use an app like Facebook, send an instant message or check the weather on your phone, you’re using an API.
The API is not a database or even the server, it is the code that governs the access point(s) for the server.
A real-world example is ordering food at a restaurant. The client orders his food through the waiter, But whats’s going on between ordering your pizza and receiving it?
API, that’s what! Then the waiter talks to the cook (other services and databases) to prepare your order. Finally, the cook gives the order to the waiter and he delivers it to your table.
One thing to keep in mind that the name of some APIs is often used to refer to both the specification of the interactions and the actual software component you interact with.
The phrase “Twitter API,” for example, not refers to the set of rules for programmatically interacting with Twitter but is generally understood to mean the thing you interact with, as in “we’re analyzing the tweets we got from Twitter API.”
Over the years, “APIs” have described any type of common connection interface in an application. Recently, however, modern APIs have adopted some features that make them extremely valuable and useful:
- Modern APIs adhere to standards (typically HTTP and REST), that are developer-friendly, easily accessible and understood broadly
- They are treated more like products than code. They are designed for consumption for specific audiences (e.g., mobile developers), they are documented, and they are versioned in a way that users can have certain expectations of its maintenance and lifecycle.
- Because they are much more standardized, they have a much stronger discipline for security and governance, as well as monitored and managed for performance and scale
- As any other piece of productized software, the modern API has its own software development lifecycle (SDLC) of designing, testing, building, managing, and versioning. Also, modern APIs are well documented for consumption and versioning