Application programming interface

APIAPIsapplication programming interfacesinterfacesapplication program interfaceprogramming interfaceinterfaceapplication programming interface (API)application programming interfaces (APIs)programming interfaces
An application programming interface (API) is an interface or communication protocol between different parts of a computer program intended to simplify the implementation and maintainance of software.wikipedia
3,001 Related Articles

Windows API

Win32Win16Win32 API
POSIX, Windows API and ASPI are examples of different forms of APIs. Microsoft has shown a strong commitment to a backward-compatible API, particularly within its Windows API (Win32) library, so older applications may run on newer versions of Windows using an executable-specific setting called "Compatibility Mode".
The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems.

POSIX

POSIX.1POSIX.2POSIX compatible
POSIX, Windows API and ASPI are examples of different forms of APIs.
POSIX defines the application programming interface (API), along with command line shells and utility interfaces, for software compatibility with variants of Unix and other operating systems.

Web API

APIweb servicesweb APIs
This is a specialized form of API though, more precisely defined as a WEB API.
A Web API is an application programming interface for either a web server or a web browser.

Language binding

bindingsbindingbound
Language bindings are also APIs.
In computing, a binding is an application programming interface (API) that provides glue code specifically made to allow a programming language to use a foreign library or operating system service (one that is not native to that language).

Lua (programming language)

LuaLua programming languageLuaJIT
An API for a procedural language such as Lua could consist primarily of basic routines to execute code, manipulate data or handle errors while an API for an object-oriented language, such as Java, would provide a specification of classes and its class methods.
Lua is cross-platform, since the interpreter of compiled bytecode is written in ANSI C, and Lua has a relatively simple C API to embed it into applications.

Client–server model

client–serverclient-serverclient/server
More recently, the term has been often used to refer to a specific kind of interface between a client and a server, which has been described as a “contract” between both - such that if the client makes a request in a specific format, it will always get a response in a specific format or initiate a defined action.
To formalize the data exchange even further, the server may implement an application programming interface (API).

Java (programming language)

JavaJava programming languageJava language
For example, because Scala and Java compile to compatible bytecode, Scala developers can take advantage of any Java API.
Sun has defined and supports four editions of Java targeting different application environments and segmented many of its APIs so that they belong to one of the platforms.

Software framework

frameworkframeworksdevelopment framework
An API can also be related to a software framework: a framework can be based on several libraries implementing several APIs, but unlike the normal use of an API, the access to the behavior built into the framework is mediated by extending its content with new classes plugged into the framework itself.
Software frameworks may include support programs, compilers, code libraries, tool sets, and application programming interfaces (APIs) that bring together all the different components to enable development of a project or system.

Application binary interface

ABIABIsApplication Binary Interface (ABI)
An API differs from an application binary interface (ABI) in that an API is source code based while an ABI is binary based.
An ABI defines how data structures or computational routines are accessed in machine code, which is a low-level, hardware-dependent format; in contrast, an API defines this access in source code, which is a relatively high-level, hardware-independent, often human-readable format.

XML

Extensible Markup LanguageXML documentXML parser
When used in the context of web development, an API is typically defined as a set of specifications, such as Hypertext Transfer Protocol (HTTP) request messages, along with a definition of the structure of response messages, usually in an Extensible Markup Language (XML) or JavaScript Object Notation (JSON) format.
Several schema systems exist to aid in the definition of XML-based languages, while programmers have developed many application programming interfaces (APIs) to aid the processing of XML data.

Library (computing)

librarylibrariessoftware library
An API may be for a web-based system, operating system, database system, computer hardware, or software library.
Most operating systems that support dynamically linked libraries also support dynamically loading such libraries via a run-time linker API.

Java remote method invocation

RMIJava RMIRemote Method Invocation
For example, the Java Database Connectivity API allows developers to query many different types of databases with the same set of functions, while the Java remote method invocation API uses the Java Remote Method Protocol to allow invocation of functions that operate remotely, but appear local to the developer.
In computing, the Java Remote Method Invocation (Java RMI) is a Java API that performs remote method invocation, the object-oriented equivalent of remote procedure calls (RPC), with support for direct transfer of serialized Java classes and distributed garbage-collection.

Operating system

operating systemsOScomputer operating system
An API may be for a web-based system, operating system, database system, computer hardware, or software library.
An operating system such as UNIX supports a wide array of storage devices, regardless of their design or file systems, allowing them to be accessed through a common application programming interface (API).

Microsoft

Microsoft CorporationMicrosoft Corp.MS
Microsoft has shown a strong commitment to a backward-compatible API, particularly within its Windows API (Win32) library, so older applications may run on newer versions of Windows using an executable-specific setting called "Compatibility Mode".
It shipped on July 21, 1993, with a new modular kernel and the Win32 application programming interface (API), making porting from 16-bit (MS-DOS-based) Windows easier.

Interface (computing)

interfaceinterfacescomputer interface
An application programming interface (API) is an interface or communication protocol between different parts of a computer program intended to simplify the implementation and maintainance of software.

Carbon (API)

CarbonCarbon APICarbonLib
Carbon is one of Apple’s C-based application programming interfaces (APIs) for macOS (formerly Mac OS X), the operating system that powers Macintosh computers.

Cocoa (API)

CocoaCocoa APIYellow Box
Cocoa is Apple's native object-oriented application programming interface (API) for its desktop operating system macOS.

Computing platform

platformplatformssoftware platform
It may be the hardware or the operating system (OS), even a web browser and associated application programming interfaces, or other underlying software, as long as the program code is executed with it.

Web 2.0

Enterprise 2.02.0Web2.0
While "web API" historically virtually has been synonymous for web service, the recent trend (so-called Web 2.0) has been moving away from Simple Object Access Protocol (SOAP) based web services and service-oriented architecture (SOA) towards more direct representational state transfer (REST) style web resources and resource-oriented architecture (ROA).
Servers often expose proprietary Application programming interfaces (API), but standard APIs (for example, for posting to a blog or notifying a blog update) have also come into use.

DirectX

DirectX 11DirectX 9DirectX 10
Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms.

Open Database Connectivity

ODBCODBC driverDatabase driver
In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS).

List of Java APIs

Java APIJava APIsAPI
There are two types of Java programming language application programming interfaces (APIs):

OpenAL

EFXOpen AlOpenAL SI
OpenAL (Open Audio Library, Open but not as in open-source) is a cross-platform audio application programming interface (API).

OpenGL

OpenGL 4.5OpenGL 1.3OpenGL 3.3
Open Graphics Library (OpenGL) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics.

OpenMP

multithreading capability
OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction set architectures and operating systems, including Solaris, AIX, HP-UX, Linux, macOS, and Windows.