API: Difference between revisions

Content deleted Content added
HTML//:****/Sony****/
Tags: Reverted Visual edit Mobile edit Mobile web edit
Undid revision 1308596460 by 41.113.131.183 (talk) - you need 3D glasses to see something emerge from the picture.
 
(31 intermediate revisions by 19 users not shown)
Line 3:
{{hatnote|"Api.php" redirects here. For the Wikipedia API, see {{Plain link|[Special:ApiHelp]}}.|selfref=true}}
 
An '''application programming interface''' ('''API''') is a connection between [[computer]]s or between [https://wwwkelvinross.com [computer programsprogram]]s. It is a type of software [[Interface (computing)|interface]], offering a service to other pieces of [[software]].<ref name=":0">{{cite book |last=Reddy |first=Martin |author-link= |date=2011 |title=API Design for C++ |url=https://books.google.com/books?id=IY29LylT85wC |publisher=Elsevier Science |page=1 |isbn=9780123850041}}</ref> A document or standard that describes how to build such a connection or interface is called an ''API specification''. A computer system that meets this standard is said to ''implement'' or ''expose'' an API. The term API may refer either to the specification or to the implementation.
 
In contrast to a [[user interface]], which connects a computer to a person, an application programming interface connects computers or pieces of software to each other. It is not intended to be used directly by a person (the [[end user]]) other than a [[computer programmer]]<ref name=":0" /> who is incorporating it into software. An API is often made up of different parts which act as tools or services that are available to the programmer. A program or a programmer that uses one of these parts is said to ''call'' that portion of the API. The calls that make up the API are also known as [[subroutine]]s, methods, requests, or [[communication endpoint|endpoint]]s. An API specification ''defines'' these calls, meaning that it explains how to use or implement them.
Line 76:
}}
</ref>
 
 
===Operating systems===
Line 93 ⟶ 94:
|archive-url=https://web.archive.org/web/20090926235439/http://www.microsoft.com/windowsxp/using/helpandsupport/learnmore/appcompat.mspx
|archive-date=2009-09-26
}}</ref> How much Microsoft developers' access to the company's operating systems' internal APIs is an advantage is unclear. Richard A. Shaffer of ''Technologic Computer Letter'' in 1987 compared the situation to a baseball game in which "Microsoft owns all the bats and the field",<ref name="barney19871102">{{Cite magazine |last=Barney |first=Douglas |date=1987-11-02 |title=Balancing on the high wire of Microsoft's success |url=https://books.google.com/books?id=mUSIMiurpfYC&pg=PP81#v=onepage&q&f=true |access-date=2025-06-08 |magazine=Computerworld |page=SR15 |volume=XXI |issue=44}}</ref> but [[Ed Esber]] of [[Ashton-Tate]] said in an interview that year that [[Bill Gates]] told him that his developers sometimes had to rewrite software based on early APIs. Gates noted in the interview that Microsoft's [[Apple Macintosh]] applications were more successful than those for MS-DOS, because his company did not have to also devote resources to [[Classic Mac OS|Mac OS]].<ref name="computerworld19871102interview">{{Cite interview |last=Gates |first=Bill |interviewer=Paul Gillin |title=The great software debate |last2=Manzi |first2=Jim |last3=Esber |first3=Ed |url=https://books.google.com/books?id=mUSIMiurpfYC&pg=PP73#v=onepage&q&f=true |access-date=2025-06-08 |work=Computerworld |issue=44 |date=1987-11-02 |page=SR7 |volume=XXI}}</ref>
 
An API differs from an [[application binary interface]] (ABI) in that an API is source code based while an ABI is [[Binary file|binary]] based. For instance, [[POSIX]] provides APIs while the [[Linux Standard Base]] provides an ABI.<ref>{{cite web|
Line 258 ⟶ 259:
*[[Comparison of application virtual machines]]
*[[Document Object Model]] (DOM)
*[[Double-chance function]]
*[[Foreign function interface]]
*[[Front and back ends]]