| advertise add site services publishers database health videos | ![]() | about toolbar stats live show health store more stuff JOIN/LOGIN |
Isoloader ® Application Interface coreoncology.com |
"API" redirects here. For other uses, see API (disambiguation).
An application programming interface (API) is an interface that a software program implements in order to allow other software to interact with it, much in the same way that software might implement a user interface in order to allow humans to use it. APIs are implemented by applications, libraries and operating systems to define how other software can make calls to or request services from them.[1][2][3] An API determines the vocabulary and calling conventions the programmer should employ to use the services. It may include specifications for routines, data structures, object classes, and protocols used to communicate between the consumer and implementer of the API.
[edit] FeaturesAn API is an abstraction. The software that provides the functionality described by an API is said to be an implementation of the API. An API may be:
For example, a website that allows users to review local restaurants is able to layer their reviews over maps taken from Google Maps, because Google Maps has an API that allows it. Google Maps' API controls what information a third-party site can grab, and what can be done with it. "API" may be used to refer to a complete interface, a single function, or even a set of multiple APIs provided by an organization. Thus, the scope of meaning is usually determined by the person or document that communicates the information. [edit] Web APIsMain article: web service When used in the context of web development, an API is typically a defined set of Hypertext Transfer Protocol (HTTP) request messages along with a definition of the structure of response messages, usually expressed in an Extensible Markup Language (XML) or JavaScript Object Notation (JSON) format. While "Web API" is virtually a synonym for web service, the recent trend (so-called Web 2.0) has been moving away from Simple Object Access Protocol (SOAP) based services towards more direct Representational State Transfer (REST) style communications[4]. Web APIs allow the combination of multiple services into new applications known as mashups [5]. [edit]The practice of publishing APIs has allowed web communities to create an open architecture for sharing of content and data between communities and applications. In this way, content that is created in one place can be dynamically posted and/or updated in multiple locations on the web. [6]. [edit] ImplementationsThe POSIX standard defines an API that allows a wide range of common computing functions to be written such that they may operate on many different systems (Mac OS X and various Berkeley Software Distributions (BSDs) implement this interface); however, making use of this requires re-compiling for each platform. A compatible API, on the other hand, allows compiled object code to function without any changes, on any system implementing that API. This is beneficial to both software providers (where they may distribute existing software on new systems without producing/distributing upgrades) and users (where they may install older software on their new systems without purchasing upgrades), although this generally requires various software libraries implementing the necessary APIs too. Microsoft has shown commitment to a backward compatible API, particularly within their Windows API (Win32) library, such that older applications may run on newer versions of Windows using an executable-specific setting called "Compatibility Mode"[7]. Apple Inc. has shown less propensity to this concern, breaking compatibility or implementing an API in a slower "emulation mode"; this allows greater freedom in development, at the cost of making older software obsolete. Among Unix-like operating systems, there are many related but incompatible operating systems running on a common hardware platform (particularly Intel 80386-compatible systems). There have been several attempts to standardise the API such that software vendors may distribute one binary application for all these systems; however to date, none of these have met with much success. The Linux Standard Base is attempting to do this for the Linux platform, while many of the BSD Unices (FreeBSD, NetBSD, OpenBSD) implement various levels of API compatibility for both backward compatibility (allowing programs written for older versions to run on newer distributions of the system) and cross-platform compatibility (allowing execution of foreign code without recompiling). [edit] Release policiesCommon API publishing policies include:
[edit] ABI'sThe related term application binary interface (ABI) is a lower level definition concerning details at the assembly language level. For example, the Linux Standard Base is an ABI, while POSIX is an API.[8] [edit] API examples
[edit] Language bindings and interface generatorsAPIs that are intended to be used by more than one high-level programming language often provide, or are augmented with, facilities to automatically map the API to features (syntactic or semantic) that are more natural in those languages. This is known as language binding, and is itself an API. The aim is to encapsulate most of the required functionality of the API, leaving a "thin" layer appropriate to each language. Below are listed some interface generator tools which bind languages to APIs at compile time.
[edit] See also
[edit] References
[edit] External links
|
| ↑ top of page ↑ | about thumbshots |