API: Difference between revisions

Content deleted Content added
Hacked by ladivina2010@gmail.com
Tags: Mobile edit Mobile web edit
m Reverted 1 edit by 2602:306:3760:1140:509A:258F:A6C4:A89B (talk) to last revision by 59.100.168.26. (TW)
Tag: nowiki added
Line 1:
{{Redirect|API||4 = }}
{{selfref|For the MediaWiki (the software used by Wikipedia) API, see [[mw:API]]}}
 
In [[computer programming]], an '''application programming interface''' ('''API''') is a set of [[Subroutine|routine]] definitions, protocols, and tools for building [[Software applications|software and applications.]]
 
An API expresses a [[software component]] in terms of its operations, inputs, outputs, and underlying types, defining functionalities that are independent of their respective implementations, which allows <nowiki>definitions and</nowiki> implementations to vary without compromising the interface. A good API makes it easier to develop a program by providing all the building blocks, which are then put together by the programmer.
 
An API may be for a web-based system, operating system, or database system, and it provides facilities to develop applications for that system using a given programming language. As an example, a programmer who develops apps for Android may use an Android API to interact with hardware, like the front camera of an Android-based device.
 
In addition to accessing [[database]]s or [[computer hardware]] like [[hard disk drive]]s or [[video card]]s, an API can ease the work of programming [[GUI]] components. For example, an API can facilitate integration of new features into existing applications (a so-called "plug-in API"). An API can also assist otherwise distinct applications with sharing data, which can help to integrate and enhance the functionalities of the applications.
 
APIs often come in the form of a [[Library (computing)|library]] that includes specifications for [[subroutine|routines]], [[data structure]]s, [[Class (computer programming)|object classes]], and variables. In other cases, notably [[SOAP]] and [[REST]] [[Web service|services]], an API is simply a specification of [[Remote procedure call|remote calls]] exposed to the API consumers.<ref>{{cite web
| url = http://www.authorize.net/support/CIM_SOAP_guide.pdf
| title = Customer Information Manager (CIM)
| work = SOAP API Documentation
| format = PDF
|date=July 2013 | accessdate = 2013-09-27
| publisher = [[Authorize.Net]]
}}</ref>
 
An API specification can take many forms, including an International Standard, such as [[POSIX]], vendor documentation, such as the [[Microsoft]] [[Windows API]], or the [[Library (computing)|libraries]] of a [[programming language]], e.g. the [[Standard Template Library]] in [[C++]] or the [[List of Java APIs|Java API]]s.
 
An API differs from an [[application binary interface]] (ABI) in that an API is source code-based while an ABI is a binary interface. For instance [[POSIX]] is an API, while the [[Linux Standard Base]] provides an ABI.<ref>{{cite web|
url=http://www.linuxfoundation.org/collaborate/workgroups/lsb/lsb-introduction|
title=LSB Introduction|
publisher=Linux Foundation|date=21 June 2012|
accessdate=2015-03-27}}</ref><ref>{{cite web|
first=Nick|
last=Stoughton|
url=https://db.usenix.org/publications/login/2005-04/openpdfs/standards2004.pdf|
title=Update on Standards|
publisher=[[USENIX]]|
format=PDF|date=April 2005|
accessdate=2009-06-04}}</ref>
 
APIs are one of the most common ways technology companies integrate with each other. Those that provide and use APIs are considered as being members of a business ecosystem.<ref>{{cite web|
last=de Ternay|
first=Guerric|
title=Business Ecosystem: Creating an Economic Moat|
url=http://boostcompanies.com/business-ecosystem|
website=BoostCompanies|
date=Oct 10, 2015|
accessdate=2016-02-01}}</ref>
 
== Uses ==