API, definition and list of those you need to know

The API is, with the programming language, the main tool for a programmer, and before to start any project one should search for APIs available on the Web that could avoid to rewrite already existing code.

An API (Application Programming Interface) is a set of
- functions headings,
- classes and their members (for an object-oriented language)
which are provided by a software library, a web service, an operating system, so they can be used to program a software that use them.

Accessing the hardware... a Seagate SSD

The implementation of functions and classes, which may be hardware specific, is not a part of the API which is hardware independent, however the API exists only if you have at least one implementation.
We must distinguish between API and library. A single API can have different implementations, as remind us the trial between Oracle and Google, the latter having made ​​its own implementation of the standard Java API, which prompted Oracle to try to recover royalties on Android, by requesting that copyright applie on the API too, which would be very damaging. Europe for its part ruled against it.

Defining such an interface is not limited to libraries, an API can also be defined for a final application so it can communicate with other applications.

Characteristics of APIs

Dependence on language

An API can be used in a single programming language or be independent to languages. In the latter case an intermediate language like XML can be used as data format for queries to the functions and methods.

Software license

It is free licensed and available without charge by any programmer, or proprietary licensed and accessible only to a restricted community, for example APIs for console games.

Language Level

There are high-level API in terms of programming language, such as graphics APIs and ABIs (Application Binary Interfaces) close to the system, like the Linux Standard Base or the interface of hardware drivers.

List of commonly used APIs and libraries

It goes without saying that the choice of an API depends on the programming language (Java has a huge standard API) and the nature of the intended project. But some APIs are common to all projects for a given type of application ...
This list contains libraries with a standard API and others that are not. In the second case, the library must be included with the application to avoid future incompatibilities.

OpenGL
Portable graphics library in 2D and 3D.

WebGL
It is an interface to the OpenGL code on browsers.

SDL.
Graphics library to build computer games.

Mozilla WebAPI.
A set of interfaces to mobile and their hardware, a work in progress but already used in Firefox OS.

Windows API.
Windows programming.

Chromium.
The code of Chrome browser has become a substitute for the C runtime or the Windows API with the advantage on the latter to be portable. One finds in the code the bulk of resources for the backend to create an application. But this is a very heavy package, and it is probably easier to use Qt or a set of specific libraries.

Portable Runtime Project
Like Chromium but designed specifically for that.

Google Map API.
Using geographical maps on a website.

Youtube API.
For using Youtube videos.