What is an Application Programming Interface (API)? As a wide definition, the website programmableweb.com says “An Application Programming Interface (API) is a system of tools and resources in an operating system, enabling developers to create software applications. APIs abstract software systems, allowing decoupled components to make requests and receive responses in many data format types…APIs are foundational to computing, but with the rise of web APIs, they have become synonymous with web APIs and RESTful web services. ”
Here is some information about APIs from Programmable Web. Here is their article called APIs Are Like User Interfaces–Just With Different Users in Mind. In that article they say something like the following: For many years, in the beginning, people were the end user that consumed data and/or functionality through a user interface (UI), or graphical user interface (GUI), an experience that’s designed to make that act of consumption as easy and even enjoyable as possible. What if that end user was software? An API is like a UI, except that it is geared for consumption by software instead of humans. APIs allow software programs to talk to one another.
At programmableweb.com, there is an article called What is an API, Exactly? As an alalogy, think of the electrical wall socket. In North America, most wall sockets deliver 120 volts of alternating current (AC) operating at 60Hz (the frequency at which the current alternates directions). Also the socket itself has specifications about size and such. Likewise an API specifies how to interact with it. The APIs “standards” are known as the API’s “contract”.
How about an example of an API? “A mobile application for home buyers can incorporate interactive maps and navigation into its User Experience by outsourcing that functionality to Google Maps. Each time that mobile application displays a new interactive map, it does so by sending a request across the Internet to a special API that’s offered by Google for that very purpose”. programmableweb.com in an article called What are the Benefits of APIs? It also says: “In addition to calling APIs from across a network, application developers can leverage APIs offered by the local system or device that their application runs on. For example, applications can discover a smartphone’s current location by calling the API associated with the phone’s GPS receiver.”
APIs make life much easier for the application developer (programmer). If you are developing a Microsoft Windows application, you only write a few lines of code to draw your window on the screen. Consider a very simple Windows Presentation Foundation program at our post called C# WPF First Program.
Developers can also consume APIs that are offered by remote systems and devices that are reachable through a network. That network can be a private network, like the ones found in homes and businesses, or, it can be a public network like the Internet.
Are APIs important for the software economy? Absolutely. In the article called How Web and Browser APIs Fuel The API Economy consider this comment: “APIs are often referred to as an engine of innovation. The Google Maps API is just one API that spawned a cycle of innovation that continues to this day. The founders of the Instagram photo-sharing service might never have succeeded had it not been for the Facebook API that allowed Instagram users to broadcast their latest photos to their friends on Facebook.”