Knowledge (XXG)

API

Source 📝

227: 45: 307: 290:. This cabinet also contained what Wilkes and Wheeler called a "library catalog" of notes about each subroutine and how to incorporate it into a program. Today, such a catalog would be called an API (or an API specification or API documentation) because it instructs a programmer on how to use (or "call") each subroutine that the programmer needs. 382:. This framework treated the application programming interface separately from other interfaces, such as the query interface. Database professionals in the 1970s observed these different interfaces could be combined; a sufficiently rich application interface could support the other interfaces as well. 805:. A synchronous API call is a design pattern where the call site is blocked while waiting for the called code to finish. With an asynchronous API call, however, the call site is not blocked while waiting for the called code to finish, and instead the calling thread is notified when the reply arrives. 483:
interfaces and agents became more widespread than open ones, but the idea of the API as a data interface took hold. Because Web APIs are widely used to exchange data of all kinds online, API has become a broad term describing much of the communication on the internet. When used in this way, the term
1368:
When you hear the acronym "API" or its expanded version "Application Programming Interface", it is almost always in reference to our modern approach, in that we use HTTP to provide access to machine readable data in a JSON or XML format, often simply referred to as "Web APIs". APIs have been around
987:
In 2010, Oracle Corporation sued Google for having distributed a new implementation of Java embedded in the Android operating system. Google had not acquired any permission to reproduce the Java API, although permission had been given to the similar OpenJDK project. Google had approached Oracle to
932:
published their annual "State of the Internet" report, showcasing the growing trend of cybercriminals targeting public API platforms at financial services worldwide. From December 2017 through November 2019, Akamai witnessed 85.42 billion credential violation attacks. About 20%, or 16.55 billion,
651:
Remote APIs allow developers to manipulate remote resources through communication protocols, specific standards for communication that allow different technologies to work together, regardless of language or platform. For example, the Java Database Connectivity API allows developers to query many
1039:
delivered the opinion of the court and at one point mentioned that "The declaring code is, if copyrightable at all, further than are most computer programs from the core of copyright." This means the code used in APIs are more similar to dictionaries than novels in terms of copyright protection.
952:
In the interest of clarity, API documentation may include a description of classes and methods in the API as well as "typical usage scenarios, code snippets, design rationales, performance discussions, and contracts", but implementation details of the API services themselves are usually omitted.
763:
In the social media space, Web APIs have allowed Web communities to facilitate sharing content and data between communities and applications. In this way, content that is created in one place dynamically can be posted and updated to multiple locations on the Web. For example, Twitter's REST API
784:
by hiding the implementation details of the modules so that users of modules need not understand the complexities inside the modules. Aside from the previous underlying principle, other metrics for measuring the usability of an API may include properties such as functional efficiency, overall
821:(DoS), broken authentication, and exposing sensitive data. Without ensuring proper security practices, bad actors can get access to information they should not have or even gain privileges to make changes to your server. Some common security practices include proper connection security using 715:
An example might be a shipping company API that can be added to an eCommerce-focused Web site to facilitate ordering shipping services and automatically include current shipping rates, without the site developer having to enter the shipper's rate table into a Web database. While "Web API"
924:
or rescinded. This usually means that part of the API should be considered a candidate for being removed, or modified in a backward incompatible way. Therefore, these changes allow developers to transition away from parts of the API that will be removed or not supported in the future.
135:
of how a system works, exposing only those parts that a programmer will find useful, and keeping them consistent even if the internal details change later. An API may be custom-built for a particular pair of systems, or it may be a shared standard allowing
577:: 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. 1392: 825:, content security to mitigate data injection attacks, and requiring an API key to use your service. Many public facing API services require you to use an assigned API key, and will refuse to serve data without sending the key with your request. 554:
are also APIs. By mapping the features and capabilities of one language to an interface implemented in another language, a language binding allows a library or service written in one language to be used when developing in another language.
944:
Documentation is crucial for the development and maintenance of applications using the API. API documentation is traditionally found in documentation files but can also be found in social media such as blogs, forums, and Q&A websites.
948:
Traditional documentation files are often presented via a documentation system, such as Javadoc or Pydoc, that has a consistent appearance and structure. However, the types of content included in the documentation differ from API to API.
861:
allow approved third-party developers to directly order rides from within their apps. This allows the companies to exercise quality control by curating which apps have access to the API and provides them with an additional revenue
342:
conference in 1968. The authors of this paper use the term to describe the interaction of an application—a graphics program in this case—with the rest of the computer system. A consistent application interface (consisting of
111:
who is incorporating it into the 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
102:
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
1024:, but Oracle vowed to appeal the decision. Oracle won on its appeal, with the Court of Appeals for the Federal Circuit ruling that Google's use of the APIs did not qualify for fair use. In 2019, Google appealed to the 1004:
To accept Oracle's claim would be to allow anyone to copyright one version of code to carry out a system of commands and thereby bar all others from writing its different versions to carry out all or part of the same
902:
An important factor when an API becomes public is its "interface stability". Changes to the API—for example adding new parameters to a function call—could break compatibility with the clients that depend on that API.
892:
APIs to allow customers and resellers access to their infrastructure information, DDoS stats, network performance, or dashboard controls. Access to such APIs is granted either by "API tokens", or customer status
1382: 412:
became common in the 1970s and 1980s, programmers wanted to call libraries located not only on their local computers but on computers located elsewhere. These remote procedure calls were well supported by the
295: 3443: 545:
Hyrum's law states that "With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody."
3298: 956:
Reference documentation for a REST API can be generated automatically from an OpenAPI document, which is a machine-readable text file that uses a prescribed format and syntax defined in the
3378: 3410: 3262: 2822: 3049: 1010: 1000:
in the U.S and that a victory for Oracle would have widely expanded copyright protection to a "functional set of symbols" and allowed the copyrighting of simple software commands:
906:
When parts of a publicly presented API are subject to change and thus not stable, such parts of a particular API should be documented explicitly as "unstable". For example, in the
1999:
Mastrangelo, Luis; Ponzanelli, Luca; Mocci, Andrea; Lanza, Michele; Hauswirth, Matthias; Nystrom, Nathaniel (2015-10-23). "Use at your own risk: the Java unsafe API in the wild".
4169: 3149: 2504: 2690: 2419: 3326: 3018: 1137:
API that supports multi-platform shared memory multiprocessing programming in C, C++, and Fortran on many architectures, including Unix and Microsoft Windows platforms.
3692: 189:
Explicit version strategy: this strategy allows making any changes including breaking changes. This strategy is suitable for complex applications and complex changes.
1591: 941:
API documentation describes the services an API offers and how to use those services, aiming to cover everything a client would need to know for practical purposes.
505:
is one type of API. The API describes and prescribes the "expected behavior" (a specification) while the library is an "actual implementation" of this set of rules.
3349: 1676:
Date, C. J.; Codd, E. F. (January 1975). "The relational and network approaches: Comparison of the application programming interfaces". In Randall Rustin (ed.).
2853: 2206: 833:
APIs are one of the more common ways technology companies integrate. Those that provide and use APIs are considered as being members of a business ecosystem.
2541: 1945: 4154: 3639: 2349: 1049: 3203: 679:
object, invokes the corresponding method on the remote object, using the remoting protocol, and acquires the result to be used locally as a return value.
3433: 2261: 1187: 2224: 99:
dictates how its end-users interact with the system in question, its API dictates how to write code that takes advantage of that system's capabilities.
988:
negotiate a license for their API, but were turned down due to trust issues. Despite the disagreement, Google chose to use Oracle's code anyway. Judge
511:
The separation of the API from its implementation can allow programs written in one language to use a library written in another. For example, because
508:
A single API can have multiple implementations (or none, being abstract) in the form of different libraries that share the same programming interface.
3283: 1181: 960:. The OpenAPI document defines basic information such as the API's name and description, as well as describing operations the API provides access to. 464:
Web APIs saw widespread commercial adoption beginning in 2000 and continuing as of 2022. The Web API is now the most common meaning of the term API.
456:(REST) and described the idea of a "network-based Application Programming Interface" that Fielding contrasted with traditional "library-based" APIs. 2914: 1140: 2942:. International Conference on Fundamental Approaches to Software Engineering. Lecture Notes in Computer Science. Vol. 6603. pp. 416–431. 1737: 793:
is also typical in designing APIs due to their reusable nature. Thus, the design of an API attempts to provide only the tools a user would expect.
600:, for example, provides a set of common API specifications that aim to enable an application written for a POSIX conformant operating system to be 3370: 764:
allows developers to access core Twitter data and the Search API provides methods for developers to interact with Twitter Search and trends data.
2655: 704:(HTTP). Client devices send a request in the form of an HTTP request, and are met with a response message usually in JavaScript Object Notation ( 3400: 772:
The design of an API has a significant impact on its usage. First of all, the design of programming interfaces represents an important part of
3174: 1451: 624:(Win32) library, so older applications may run on newer versions of Windows using an executable-specific setting called "Compatibility Mode". 3968: 3939: 2957: 2299: 2016: 1269: 159:. APIs originated in the 1940s, though the term did not emerge until the 1960s and 1970s. Contemporary usage of the term API often refers to 3258: 2814: 1564:. AFIPS 1968 Fall Joint Computer Conference. Vol. I. San Francisco, California: Association for Computing Machinery. pp. 533–544. 3549:
Argues that "APIs are far from neutral tools" and form a key part of contemporary programming, understood as a fundamental part of culture.
3041: 2466: 980: 3502: 2313: 2088: 1864: 1806: 1056: 3561: 2387: 1731: 1693: 1660: 1577: 1243: 1025: 888:. Not all public APIs are generally accessible by everybody. For example, Internet service providers like Cloudflare or Voxility, use 430: 347:
subroutine calls) was intended to free the programmer from dealing with idiosyncrasies of the graphics display device, and to provide
267: 199: 3570: 3138: 3113: 2762: 2120: 1975: 1772: 1421: 1355: 1316: 2737: 2062: 2496: 393:
By 1990, the API was defined simply as "a set of services available to a programmer for performing certain tasks" by technologist
4159: 3743: 3687: 3592: 3532: 2441: 2180: 2001:
Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
2687: 2411: 933:
were against hostnames defined as API endpoints. Of these, 473.5 million have targeted financial services sector organizations.
303:
considers that Wilkes and Wheeler "latently invented" the API because it is more of a concept that is discovered than invented.
226: 3662: 3632: 757: 733: 453: 279: 211: 117: 2126: 1531: 3855: 3753: 3322: 3010: 802: 749: 741: 611: 246:. This origin is still reflected in the name "application programming interface." Today, the term is broader, including also 2784: 1778: 1322: 3474: 202:
the underlying implementation and only exposing objects or actions the developer needs. While a graphical interface for an
4133: 3682: 3667: 1557: 729: 657: 567: 2712: 206:
might provide a user with a button that performs all the steps for fetching and highlighting new emails, an API for file
3728: 3713: 3672: 3341: 2980: 628: 574: 512: 57: 785:
correctness, and learnability for novices. One straightforward and commonly adopted way of designing APIs is to follow
3894: 3841: 701: 668: 580:
Moreover, the overall program flow of control can be out of the control of the caller and in the framework's hands by
535: 516: 414: 2845: 2451: 230:
A diagram from 1978 proposing the expansion of the idea of the API to become a general programming interface, beyond
3909: 3748: 3625: 2526: 2210: 1218: 1203: 1107: 531: 379: 3237: 1935: 1020:
In 2016, following a two-week trial, a jury determined that Google's reimplementation of the Java API constituted
3944: 3763: 3723: 3718: 3677: 1619: 1479:(Report). Washington, DC: U.S. Department of Commerce, National Bureau of Standards. April 1981. pp. 45–47. 251: 2339: 1680:. SIGMOD Workshop 1974. Vol. 2. Ann Arbor, Michigan: Association for Computing Machinery. pp. 83–113. 534:
could consist primarily of basic routines to execute code, manipulate data or handle errors while an API for an
4164: 3987: 3874: 3738: 3211: 1263: 1223: 1146: 818: 2250: 2228: 3733: 3591: – Cory Ondrejka, February 28, 2014, " ...proposed a public API to let computers talk to each other". ( 2936:
Shi, Lin; Zhong, Hao; Xie, Tao; Li, Mingshu (2011). "An Empirical Study on Evolution of API Documentation".
1624: 786: 548:
Meanwhile, several studies show that most applications that use an API tend to use a small part of the API.
375: 311: 3071:
Dekel, Uri; Herbsleb, James D. (May 2009). "Improving API Documentation Usability with Knowledge Pushing".
712:) format. Developers typically use Web APIs to query a server for a specific set of data from that server. 4121: 4060: 3949: 3929: 3878: 3836: 3405: 3076: 1899: 1198: 790: 682:
A modification of the proxy object will also result in a corresponding modification of the remote object.
527: 485: 426: 401: 215: 183: 121: 44: 2906: 2883: 1613: 3904: 3870: 3772: 3708: 2305: 1887: 1721: 1213: 1192: 957: 773: 661: 385:
This observation led to APIs that supported all types of programming, not just application programming.
348: 95:
an API. The term API may refer either to the specification or to the implementation. Whereas a system's
83:. A document or standard that describes how to build or use such a connection or interface is called an 76: 3605: 1484: 2652: 1028:
over both the copyrightability and fair use rulings, and the Supreme Court granted review. Due to the
4101: 4075: 1476: 753: 581: 480: 315: 182:
Additive change strategy: new features are added without modifying existing ones. Any update must be
144: 31: 3081: 214:
that copies a file from one location to another without requiring that the developer understand the
4070: 4022: 3899: 3182: 2446: 1904: 1646: 1443: 1253: 1208: 929: 781: 640: 502: 365: 359: 271: 243: 231: 175: 148: 2036: 1652:
E. F. Codd and Relational Theory: A Detailed Review and Analysis of Codd's Major Database Writings
4007: 3914: 3119: 2632: 2589: 2172: 1909: 1279: 1176: 910:
library, the parts that are considered unstable, and that might change soon, are marked with the
885: 777: 132: 17: 2003:. OOPSLA 2015. New York, New York, U.S.: Association for Computing Machinery. pp. 695–710. 3496:"Supreme Court of the United States, No. 18–956, GOOGLE LLC, PETITIONER v. ORACLE AMERICA, INC" 4116: 4065: 3997: 3954: 3795: 3552: 3540: 3495: 3109: 2953: 2383: 2295: 2286: 2116: 2084: 2012: 1981: 1971: 1856: 1800: 1768: 1727: 1699: 1689: 1656: 1650: 1583: 1573: 1488: 1417: 1312: 1111: 1102: 1083: 1029: 334: 156: 3098:
Web2SE '11: Proceedings of the 2nd International Workshop on Web 2.0 for Software Engineering
1632: 756:
technologies. Web APIs allow the combination of multiple APIs into new applications known as
4096: 3648: 3294: 3207: 3101: 2943: 2671: 2622: 2579: 2164: 2004: 1837: 1681: 1565: 1480: 1387: 850: 593: 551: 409: 247: 152: 137: 72: 306: 4040: 4002: 3973: 2694: 2659: 1347: 1258: 1035:
The case was decided by the Supreme Court in Google's favor with a ruling of 6–2. Justice
964: 911: 813:
API security is very critical when developing a public facing API. Common threats include
476: 472: 38: 2758: 2688:"Synchronous vs. Asynchronous Writes - Packaged Contact Center Enterprise" - Cisco DevNet 2733: 2058: 696:
Web APIs are a service accessed from client devices (mobile phones, laptops, etc.) to a
4126: 4050: 4012: 3884: 2379: 1369:
almost as long as computing, but modern Web APIs began taking shape in the early 2000s.
1036: 287: 263: 96: 3096:
Parnin, Chris; Treude, Cristoph (May 2011). "Measuring API documentation on the web".
2149: 526:
API use can vary depending on the type of programming language involved. An API for a
4148: 3992: 3831: 3785: 3556: 2937: 2372: 1233: 1228: 1171: 989: 814: 676: 369: 168: 3588: 3123: 2594: 2176: 1913: 1841: 1828:
Dotsika, Fefie (August 2010). "Semantic APIs: Scaling up towards the Semantic Web".
620:
has shown a strong commitment to a backward-compatible API, particularly within its
262:
The idea of the API is much older than the term itself. British computer scientists
3919: 3438: 2474: 2110: 1891: 1717: 1525: 1521: 1070: 907: 745: 737: 539: 468: 441: 394: 300: 283: 207: 203: 2637: 2948: 1762: 1562:
AFIPS '68: Proceedings of the December 9–11, 1968, Fall Joint Computer Conference
1306: 4045: 4027: 3810: 3800: 3790: 3574: 3566: 3466: 2309: 1161: 1066: 997: 881: 873: 717: 672: 632: 621: 2792: 1678:
Proceedings of 1974 ACM-SIGMOD Workshop on Data Description, Access and Control
2708: 1985: 1703: 1587: 1166: 1088: 877: 697: 108: 3544: 2988: 242:
initially described an interface only for end-user-facing programs, known as
3982: 3889: 3815: 3780: 3105: 2344: 2008: 1940: 1569: 1092: 1074: 869: 617: 449: 310:
Although the people who coined the term API were implementing software on a
3434:"Google asks Supreme Court to overrule disastrous ruling on API copyrights" 1802:
Architectural Styles and the Design of Network-based Software Architectures
667:
Therefore, remote APIs are useful in maintaining the object abstraction in
446:
Architectural Styles and the Design of Network-based Software Architectures
2584: 2567: 1968:
Software engineering at Google: lessons learned from programming over time
1685: 116:
that portion of the API. The calls that make up the API are also known as
4111: 3608:– May 20, 2021 – content format: Audio with text – length 26:41 3582: 2675: 1238: 1021: 1014: 653: 601: 520: 418: 355: 164: 104: 80: 2664:
Proceedings of the 29th international conference on Software Engineering
1892:"The design and implementation of a language for extending applications" 479:, distributed data interface rather than a software behavior interface. 4106: 4035: 3805: 3233: 3042:"Akamai: Cybercriminals are attacking APIs at financial services firms" 2168: 1274: 1248: 1097: 1079: 889: 721: 691: 563: 405: 344: 186:. This strategy is suitable for small projects with low rate of change. 160: 49: 2815:"Private, Partner or Public: Which API Strategy Is Best for Business?" 664:
of functions that operate remotely but appear local to the developer.
3578: 2846:"Car Service APIs Are Everywhere, But What's In It For Partner Apps?" 2418:. Institute of Electrical and Electronics Engineers. pp. 13–15. 2257: 1134: 1128: 1122: 1116: 163:, which allow communication between computers that are joined by the 3617: 3606:
Forrester : IT industry : API Case : Google v. Oracle
2907:"Car Service APIs Are Everywhere, But What's In It For Partner Apps" 2627: 2610: 1125:
cross-platform API for general-purpose computing for CPUs & GPUs
776:, the organization of a complex piece of software. The principle of 167:. Recent developments in APIs have led to the rise in popularity of 128:
these calls, meaning that it explains how to use or implement them.
2150:"Open source standardization: the rise of Linux in the network era" 171:, which are loosely coupled services accessed through public APIs. 4055: 1284: 822: 636: 607: 597: 422: 339: 305: 275: 225: 43: 1032:, the oral hearings in the case were delayed until October 2020. 963:
API documentation can be enriched with metadata information like
614:
are examples of operating systems that implement the POSIX APIs.
570:
interface generator, facilitate the creation of such interfaces.
538:, such as Java, would provide a specification of classes and its 2568:"On the Criteria To Be Used in Decomposing Systems into Modules" 1492: 1060: 858: 854: 849:: Only specific business partners can use the API. For example, 725: 705: 592:
An API can specify the interface between an application and the
559: 461: 53: 3621: 3611: 1855:
Odersky, Martin; Spoon, Lex; Venners, Bill (10 December 2008).
967:. This metadata can be used by the compiler, tools, and by the 433:
competed to become the most common way to expose API services.
372:
Approaches: Comparison of the Application Programming Interface
3323:"Oracle Am., Inc. v. Google Inc., No. 13-1021, Fed. Cir. 2014" 2981:"guava-libraries – Guava: Google Core Libraries for Java 1.6+" 2875: 1013:, though the question of whether such use of APIs constitutes 971:
environment to implement custom behaviors or custom handling.
709: 457: 296:
The Preparation of Programs for an Electronic Digital Computer
75:
or components to communicate with each other. It is a type of
3371:"Google beats Oracle – Android makes "fair use" of Java APIs" 1558:"Data structures and techniques for remote computer graphics" 417:
language in particular. In the 1990s, with the spread of the
3342:"Court sides with Oracle over Android in Java patent appeal" 475:
in 2001 included "semantic APIs" that recasts the API as an
3401:"Oracle Wins Revival of Billion-Dollar Case Against Google" 3073:
Institute for Software Research, School of Computer Science
868:: The API is available for use by the public. For example, 724:) has been moving away from Simple Object Access Protocol ( 198:
In building applications, an API simplifies programming by
37:"Api.php" redirects here. For the Knowledge (XXG) API, see 2534:
Advances in Software Engineering and Knowledge Engineering
2412:"Services Mashups: The New Generation of Web Applications" 1966:
Winters, Titus; Tom Manshreck; Hyrum Wright, eds. (2020).
631:(ABI) in that an API is source code based while an ABI is 3533:"Objects of Intense Feeling: The Case of the Twitter API" 2653:
The Factory Pattern in API Design: A Usability Evaluation
2410:
Benslimane, Djamal; Schahram Dustdar; Amit Sheth (2008).
780:
describes the role of programming interfaces as enabling
400:
The idea of the API was expanded again with the dawn of
87:. A computer system that meets this standard is said to 2032: 1009:
Alsup's ruling was overturned in 2014 on appeal to the
523:, Scala developers can take advantage of any Java API. 3139:"Patterns of Knowledge in API Reference Documentation" 920:
A public API can sometimes declare parts of itself as
3259:"APIs Can't be Copyrighted Says Judge in Oracle Case" 1756: 1754: 1556:
Cotton, Ira W.; Greatorex, Frank S. (December 1968).
1551: 1549: 1414:
Designing Web APIs Building APIs That Developers Love
327:
The term "application program interface" (without an
2651:
Brian Ellis, Jeffrey Stylos, and Brad Myers. 2007. "
4084: 4021: 3967: 3928: 3863: 3854: 3824: 3771: 3762: 3701: 3655: 3137:Maalej, Waleed; Robillard, Martin P. (April 2012). 2288:
API Protocol Compliance in Object-Oriented Software
2709:"Global Cloud Microservices Market (2021 to 2026)" 2371: 1761:Jin, Brenda; Sahni, Saurabh; Shevat, Amir (2018). 1612: 1383:"Global Cloud Microservices Market (2021 to 2026)" 660:API uses the Java Remote Method Protocol to allow 3581: – rather than cooking instruction, this is 3234:"Oracle and the End of Programming As We Know It" 1896:TeCGraf Grupo de Tecnologia Em Computacao Grafica 2759:"API Keys – What Is an API Key? | APILayer Blog" 2227:. Linux Foundation. 21 June 2012. Archived from 716:historically has been virtually synonymous with 299:contains the first published API specification. 3565:, pp. 3–7 – "For each task, there is 2785:"Business Ecosystem: Creating an Economic Moat" 1830:International Journal of Information Management 1477:Database architectures – a feasibility workshop 1002: 604:for another POSIX conformant operating system. 2939:Fundamental Approaches to Software Engineering 351:if the computer or the display were replaced. 178:. There are two common versioning strategies: 3633: 2115:. O'Reilly & Associates, Inc. p. 1. 8: 836:The main policies for releasing an API are: 801:An application programming interface can be 744:(ROA). Part of this trend is related to the 331:suffix) is first recorded in a paper called 27:Software interface between computer programs 4170:Computer-related introductions in the 1940s 2555:– via CMU School of Computer Science. 1516: 1514: 1512: 1510: 843:: The API is for internal company use only. 3860: 3768: 3640: 3626: 3618: 2527:"An Introduction to Software Architecture" 2525:Garlan, David; Shaw, Mary (January 1994). 2442:"So What Is an Enterprise Mashup, Anyway?" 1341: 1339: 1188:Comparison of application virtual machines 975:Dispute over copyright protection for APIs 884:so that software can be written for their 656:with the same set of functions, while the 333:Data structures and techniques for remote 3146:IEEE Transactions on Software Engineering 3080: 2947: 2636: 2626: 2593: 2583: 1903: 1805:(PhD). University of California, Irvine. 1471: 1469: 1437: 1435: 1433: 1182:Common Object Request Broker Architecture 484:API has overlap in meaning with the term 2670:). IEEE Computer Society, USA, 302–312. 2609:Myers, Brad A.; Stylos, Jeffrey (2016). 2085:"Object-Oriented Application Frameworks" 1141:Server application programming interface 1011:Court of Appeals for the Federal Circuit 354:The term was introduced to the field of 218:operations occurring behind the scenes. 79:, offering a service to other pieces of 2467:"The Evolution of the Social Media API" 2416:IEEE Internet Computing, vol. 12, no. 5 2370:Henning, Michi; Vinoski, Steve (1999). 1534:from the original on September 22, 2020 1527:A Brief, Opinionated History of the API 1358:from the original on September 11, 2020 1297: 2209:. Microsoft. p. 4. Archived from 1726:. Van Nostrand Reinhold. p. 294. 1530:(Speech). QCon. San Francisco: InfoQ. 752:(RDF), a concept to promote web-based 3052:from the original on 27 February 2020 2917:from the original on 21 February 2020 2886:from the original on 26 February 2020 1809:from the original on January 22, 2020 1270:Structured Financial Messaging System 7: 3413:from the original on January 9, 2022 3286:Oracle America, Inc. vs. Google Inc. 3040:Takanashi, Dean (19 February 2020). 2338:Wilson, M. Jeff (10 November 2000). 2319:from the original on 11 October 2016 1633:participating institution membership 982:Oracle America, Inc. v. Google, Inc. 314:, the goal of their API was to make 3467:"Google LLC v. Oracle America, Inc" 3446:from the original on April 23, 2019 3155:from the original on 22 August 2016 2783:de Ternay, Guerric (Oct 10, 2015). 2374:Advanced CORBA Programming with C++ 2294:(PhD). Carnegie Mellon University. 2186:from the original on 27 August 2016 2148:West, Joel; Dedrick, Jason (2001). 2129:from the original on 22 August 2016 1936:"Just what is the Java API anyway?" 4155:Application programming interfaces 3573:) is the method for calling that ' 3508:from the original on April 5, 2021 3175:"Structure of an OpenAPI Document" 2157:Knowledge, Technology & Policy 1970:. Sebastopol, CA: O'Reilly Media. 1867:from the original on 8 August 2016 1244:Open Service Interface Definitions 1050:Application programming interfaces 1026:Supreme Court of the United States 25: 3571:Application Programming Interface 3531:Taina Bucher (16 November 2013). 3471:LII / Legal Information Institute 3432:Lee, Timothy (January 25, 2019). 3021:from the original on 9 April 2016 2876:"Cloudflare API v4 Documentation" 2856:from the original on 28 July 2020 2844:Weissbrot, Alison (7 July 2016). 2285:Bierhoff, Kevin (23 April 2009). 1454:from the original on 3 March 2022 708:) or Extensible Markup Language ( 65:application programming interface 18:Application Programming Interface 3744:Object-oriented operating system 3399:Decker, Susan (March 27, 2018). 3340:Rosenblatt, Seth (May 9, 2014). 3329:from the original on 2014-10-10. 3011:"How and When to Deprecate APIs" 2340:"Get smart with proxies and RMI" 1890:; Filho, Waldemar Celes (1994). 1495:. NBS special publication 500-76 1348:"Intro to APIs: History of APIs" 573:An API can also be related to a 3612:Geliştiriciler İçin API Listesi 3477:from the original on 2021-04-15 3381:from the original on 2017-01-20 3352:from the original on 2017-04-19 3304:from the original on 2013-11-04 3265:from the original on 2012-12-21 3240:from the original on 2012-05-09 2825:from the original on 2016-07-18 2765:from the original on 2022-05-16 2740:from the original on 2022-04-02 2715:from the original on 2020-02-18 2547:from the original on 6 May 2021 2507:from the original on 2020-06-17 2422:from the original on 2023-10-07 2352:from the original on 2020-07-20 2267:from the original on 2009-03-27 2091:from the original on 2013-11-05 2065:from the original on 2011-01-23 2039:from the original on 2011-07-04 1948:from the original on 2020-10-19 1842:10.1016/j.ijinfomgt.2009.12.003 1781:from the original on 2023-04-10 1740:from the original on 2021-01-26 1614:"application program interface" 1594:from the original on 2020-10-20 1395:from the original on 2022-04-08 1325:from the original on 2023-04-15 1311:. Elsevier Science. p. 1. 797:Synchronous versus asynchronous 734:representational state transfer 454:Representational state transfer 293:Wilkes and Wheeler's 1951 book 282:in this library were stored on 3754:Supercomputer operating system 2905:Liew, Zell (17 January 2018). 2440:Niccolai, James (2008-04-23), 2249:Stoughton, Nick (April 2005). 1886:de Figueiredo, Luiz Henrique; 1346:Lane, Kin (October 10, 2019). 750:Resource Description Framework 742:resource-oriented architecture 720:, the recent trend (so-called 612:Berkeley Software Distribution 374:. An API became a part of the 1: 3585:instruction) to be carry out" 3577:' (instruction – like a 1934:Sintes, Tony (13 July 2001). 730:service-oriented architecture 658:Java remote method invocation 3729:Just enough operating system 3714:Distributed operating system 3589:Maury, Innovation and Change 3555: – in the U.S. Supreme 2987:. 2014-02-04. Archived from 2949:10.1007/978-3-642-19811-3_29 629:application binary interface 3842:User space and kernel space 1131:cross-platform graphics API 803:synchronous or asynchronous 789:evaluation guidelines. The 702:Hypertext Transfer Protocol 669:object-oriented programming 380:database management systems 210:might give the developer a 71:) is a way for two or more 4186: 3749:Real-time operating system 2501:Twitter Developer Platform 2205:Microsoft (October 2001). 2109:Lewine, Donald A. (1991). 1857:"Combining Scala and Java" 1381:Wood, Laura (2021-08-25). 1219:Interface control document 1204:Foreign function interface 1047: 978: 732:(SOA) towards more direct 689: 131:One purpose of APIs is to 36: 29: 3945:Multilevel feedback queue 3940:Fixed-priority preemptive 3724:Hobbyist operating system 3719:Embedded operating system 2813:Boyd, Mark (2014-02-21). 2615:Communications of the ACM 2611:"Improving API usability" 2572:Communications of the ACM 2465:Parr, Ben (21 May 2009). 1723:Analyzing Novell Networks 1655:. Lulu.com. p. 135. 1620:Oxford English Dictionary 1444:"Measuring API Usability" 996:case that APIs cannot be 728:) based Web services and 278:, an early computer. The 133:hide the internal details 56:demonstrating the use of 52:documentation written by 3988:General protection fault 3739:Network operating system 3693:User features comparison 2207:"Support for Windows XP" 2112:POSIX Programmer's Guide 1416:. O'Reilly Media. 2018. 1264:Software development kit 1224:List of 3D graphics APIs 1147:Simple DirectMedia Layer 1119:cross-platform sound API 819:Denial-of-service attack 675:, executed locally on a 639:provides APIs while the 584:or a similar mechanism. 536:object-oriented language 497:Libraries and frameworks 120:, methods, requests, or 107:) other than a computer 4160:Technical communication 3734:Mobile operating system 3261:. TGDaily. 2012-06-01. 3236:. DrDobbs. 2012-05-01. 3106:10.1145/1984701.1984706 2009:10.1145/2814270.2814313 1625:Oxford University Press 1570:10.1145/1476589.1476661 1485:2027/mdp.39015077587742 1442:Clarke, Steven (2004). 898:Public API implications 627:An API differs from an 362:in a 1974 paper called 124:. An API specification 3837:Loadable kernel module 3465:vkimber (2020-09-28). 3406:Bloomberg Businessweek 2985:Google Project Hosting 2059:"Inversion Of Control" 1888:Ierusalimschy, Roberto 1799:Fielding, Roy (2000). 1305:Reddy, Martin (2011). 1199:Double-chance function 1007: 928:On February 19, 2020, 791:Factory method pattern 519:compile to compatible 486:communication protocol 402:remote procedure calls 319: 235: 60: 3905:Process control block 3871:Computer multitasking 3709:Disk operating system 3569:; API (also known as 3562:Google v. Oracle 2021 3537:Computational Culture 3179:OpenAPI Documentation 3015:Java SE Documentation 2707:Silva, Paulo (2019). 2585:10.1145/361598.361623 2566:Parnas, D.L. (1972). 2251:"Update on Standards" 1686:10.1145/800297.811532 1214:Interface (computing) 1193:Document Object Model 1017:was left unresolved. 958:OpenAPI Specification 774:software architecture 635:based. For instance, 349:hardware independence 309: 229: 145:programming languages 47: 4076:Virtual tape library 3668:Forensic engineering 3614: – Feb 23, 2024 2882:. 25 February 2020. 2676:10.1109/ICSE.2007.85 754:ontology engineering 582:inversion of control 376:ANSI/SPARC framework 316:hardware independent 270:worked on a modular 244:application programs 232:application programs 140:among many systems. 32:API (disambiguation) 30:For other uses, see 4085:Supporting concepts 4071:Virtual file system 1623:(Online ed.). 1209:Front and back ends 787:Nielsen's heuristic 782:modular programming 652:different types of 641:Linux Standard Base 528:procedural language 501:The interface to a 252:hardware interfaces 222:History of the term 184:backward compatible 143:There are APIs for 4008:Segmentation fault 3856:Process management 3100:. pp. 25–30. 2693:2022-08-03 at the 2658:2022-03-21 at the 2497:"GET trends/place" 2225:"LSB Introduction" 2169:10.1007/PL00022278 1767:. O'Reilly Media. 1764:Designing Web APIs 1524:(August 8, 2018). 1308:API Design for C++ 1280:Web content vendor 1177:Calling convention 1063:device interfacing 853:companies such as 778:information hiding 575:software framework 320: 318:programs possible. 236: 149:software libraries 77:software interface 61: 4142: 4141: 3998:Memory protection 3969:Memory management 3963: 3962: 3955:Shortest job next 3850: 3849: 3649:Operating systems 3501:. April 5, 2021. 2959:978-3-642-19810-6 2911:Smashing Magazine 2578:(12): 1053–1058. 2301:978-1-109-31660-5 2018:978-1-4503-3689-5 1631:(Subscription or 1112:Microsoft Windows 1084:Microsoft Windows 1030:COVID-19 pandemic 880:releases its API 643:provides an ABI. 588:Operating systems 552:Language bindings 452:in 2000 outlined 421:, standards like 410:computer networks 335:computer graphics 274:in the 1940s for 157:computer hardware 153:operating systems 85:API specification 73:computer programs 16:(Redirected from 4177: 4097:Computer network 3861: 3769: 3642: 3635: 3628: 3619: 3548: 3518: 3517: 3515: 3513: 3507: 3500: 3492: 3486: 3485: 3483: 3482: 3462: 3456: 3455: 3453: 3451: 3429: 3423: 3422: 3420: 3418: 3396: 3390: 3389: 3387: 3386: 3367: 3361: 3360: 3358: 3357: 3337: 3331: 3330: 3319: 3313: 3312: 3310: 3309: 3303: 3292: 3280: 3274: 3273: 3271: 3270: 3255: 3249: 3248: 3246: 3245: 3230: 3224: 3222: 3220: 3219: 3210:. Archived from 3208:Sun Microsystems 3200: 3194: 3193: 3191: 3190: 3181:. Archived from 3171: 3165: 3164: 3162: 3160: 3154: 3143: 3134: 3128: 3127: 3093: 3087: 3086: 3084: 3068: 3062: 3061: 3059: 3057: 3037: 3031: 3030: 3028: 3026: 3006: 3000: 2999: 2997: 2996: 2977: 2971: 2970: 2968: 2966: 2951: 2933: 2927: 2926: 2924: 2922: 2902: 2896: 2895: 2893: 2891: 2872: 2866: 2865: 2863: 2861: 2841: 2835: 2834: 2832: 2830: 2810: 2804: 2803: 2801: 2800: 2791:. Archived from 2780: 2774: 2773: 2771: 2770: 2755: 2749: 2748: 2746: 2745: 2730: 2724: 2723: 2721: 2720: 2704: 2698: 2685: 2679: 2649: 2643: 2642: 2640: 2630: 2606: 2600: 2599: 2597: 2587: 2563: 2557: 2556: 2554: 2552: 2546: 2531: 2522: 2516: 2515: 2513: 2512: 2493: 2487: 2486: 2484: 2482: 2473:. Archived from 2462: 2456: 2455: 2450:, archived from 2437: 2431: 2430: 2428: 2427: 2407: 2401: 2400: 2398: 2396: 2377: 2367: 2361: 2360: 2358: 2357: 2335: 2329: 2328: 2326: 2324: 2318: 2293: 2282: 2276: 2275: 2273: 2272: 2266: 2255: 2246: 2240: 2239: 2237: 2236: 2221: 2215: 2214: 2202: 2196: 2195: 2193: 2191: 2185: 2154: 2145: 2139: 2138: 2136: 2134: 2106: 2100: 2099: 2097: 2096: 2083:Fayad, Mohamed. 2080: 2074: 2073: 2071: 2070: 2057:Fowler, Martin. 2054: 2048: 2047: 2045: 2044: 2029: 2023: 2022: 1996: 1990: 1989: 1963: 1957: 1956: 1954: 1953: 1931: 1925: 1924: 1922: 1920: 1907: 1883: 1877: 1876: 1874: 1872: 1852: 1846: 1845: 1825: 1819: 1818: 1816: 1814: 1796: 1790: 1789: 1787: 1786: 1758: 1749: 1748: 1746: 1745: 1714: 1708: 1707: 1673: 1667: 1666: 1643: 1637: 1636: 1628: 1616: 1609: 1603: 1602: 1600: 1599: 1553: 1544: 1543: 1541: 1539: 1518: 1505: 1504: 1502: 1500: 1473: 1464: 1463: 1461: 1459: 1439: 1428: 1427: 1410: 1404: 1403: 1401: 1400: 1388:businesswire.com 1378: 1372: 1371: 1365: 1363: 1343: 1334: 1333: 1331: 1330: 1302: 994:Oracle v. Google 965:Java annotations 916: 851:vehicle for hire 829:Release policies 748:movement toward 594:operating system 547: 546: 503:software library 444:'s dissertation 338:presented at an 272:software library 248:utility software 138:interoperability 21: 4185: 4184: 4180: 4179: 4178: 4176: 4175: 4174: 4165:1968 neologisms 4145: 4144: 4143: 4138: 4080: 4041:Defragmentation 4026: 4017: 4003:Protection ring 3972: 3959: 3931: 3924: 3846: 3820: 3758: 3697: 3651: 3646: 3602: 3553:What is an API? 3530: 3527: 3525:Further reading 3522: 3521: 3511: 3509: 3505: 3498: 3494: 3493: 3489: 3480: 3478: 3464: 3463: 3459: 3449: 3447: 3431: 3430: 3426: 3416: 3414: 3398: 3397: 3393: 3384: 3382: 3369: 3368: 3364: 3355: 3353: 3339: 3338: 3334: 3321: 3320: 3316: 3307: 3305: 3301: 3290: 3282: 3281: 3277: 3268: 3266: 3257: 3256: 3252: 3243: 3241: 3232: 3231: 3227: 3217: 3215: 3202: 3201: 3197: 3188: 3186: 3173: 3172: 3168: 3158: 3156: 3152: 3141: 3136: 3135: 3131: 3116: 3095: 3094: 3090: 3082:10.1.1.446.4214 3070: 3069: 3065: 3055: 3053: 3039: 3038: 3034: 3024: 3022: 3008: 3007: 3003: 2994: 2992: 2991:on Mar 26, 2014 2979: 2978: 2974: 2964: 2962: 2960: 2935: 2934: 2930: 2920: 2918: 2904: 2903: 2899: 2889: 2887: 2874: 2873: 2869: 2859: 2857: 2843: 2842: 2838: 2828: 2826: 2819:ProgrammableWeb 2812: 2811: 2807: 2798: 2796: 2782: 2781: 2777: 2768: 2766: 2757: 2756: 2752: 2743: 2741: 2732: 2731: 2727: 2718: 2716: 2706: 2705: 2701: 2695:Wayback Machine 2686: 2682: 2660:Wayback Machine 2650: 2646: 2628:10.1145/2896587 2608: 2607: 2603: 2565: 2564: 2560: 2550: 2548: 2544: 2529: 2524: 2523: 2519: 2510: 2508: 2495: 2494: 2490: 2480: 2478: 2477:on Aug 11, 2016 2464: 2463: 2459: 2454:on Oct 10, 2017 2439: 2438: 2434: 2425: 2423: 2409: 2408: 2404: 2394: 2392: 2390: 2369: 2368: 2364: 2355: 2353: 2337: 2336: 2332: 2322: 2320: 2316: 2302: 2291: 2284: 2283: 2279: 2270: 2268: 2264: 2253: 2248: 2247: 2243: 2234: 2232: 2223: 2222: 2218: 2204: 2203: 2199: 2189: 2187: 2183: 2152: 2147: 2146: 2142: 2132: 2130: 2123: 2108: 2107: 2103: 2094: 2092: 2082: 2081: 2077: 2068: 2066: 2056: 2055: 2051: 2042: 2040: 2031: 2030: 2026: 2019: 1998: 1997: 1993: 1978: 1965: 1964: 1960: 1951: 1949: 1933: 1932: 1928: 1918: 1916: 1885: 1884: 1880: 1870: 1868: 1854: 1853: 1849: 1827: 1826: 1822: 1812: 1810: 1798: 1797: 1793: 1784: 1782: 1775: 1760: 1759: 1752: 1743: 1741: 1734: 1716: 1715: 1711: 1696: 1675: 1674: 1670: 1663: 1645: 1644: 1640: 1630: 1611: 1610: 1606: 1597: 1595: 1580: 1555: 1554: 1547: 1537: 1535: 1520: 1519: 1508: 1498: 1496: 1475: 1474: 1467: 1457: 1455: 1441: 1440: 1431: 1424: 1412: 1411: 1407: 1398: 1396: 1380: 1379: 1375: 1361: 1359: 1345: 1344: 1337: 1328: 1326: 1319: 1304: 1303: 1299: 1294: 1289: 1259:RAML (software) 1157: 1152: 1052: 1048:Main category: 1046: 985: 977: 939: 914: 912:Java annotation 900: 831: 811: 799: 770: 694: 688: 649: 590: 544: 543: 499: 494: 473:Tim Berners-Lee 439: 391: 325: 323:1960s and 1970s 286:organized in a 260: 258:1940s and 1950s 224: 196: 174:APIs should be 42: 39:Special:ApiHelp 35: 28: 23: 22: 15: 12: 11: 5: 4183: 4181: 4173: 4172: 4167: 4162: 4157: 4147: 4146: 4140: 4139: 4137: 4136: 4131: 4130: 4129: 4127:User interface 4124: 4114: 4109: 4104: 4099: 4094: 4088: 4086: 4082: 4081: 4079: 4078: 4073: 4068: 4063: 4058: 4053: 4051:File attribute 4048: 4043: 4038: 4032: 4030: 4019: 4018: 4016: 4015: 4013:Virtual memory 4010: 4005: 4000: 3995: 3990: 3985: 3979: 3977: 3965: 3964: 3961: 3960: 3958: 3957: 3952: 3947: 3942: 3936: 3934: 3926: 3925: 3923: 3922: 3917: 3912: 3907: 3902: 3897: 3892: 3887: 3885:Context switch 3882: 3867: 3865: 3858: 3852: 3851: 3848: 3847: 3845: 3844: 3839: 3834: 3828: 3826: 3822: 3821: 3819: 3818: 3813: 3808: 3803: 3798: 3793: 3788: 3783: 3777: 3775: 3766: 3760: 3759: 3757: 3756: 3751: 3746: 3741: 3736: 3731: 3726: 3721: 3716: 3711: 3705: 3703: 3699: 3698: 3696: 3695: 3690: 3685: 3680: 3675: 3670: 3665: 3659: 3657: 3653: 3652: 3647: 3645: 3644: 3637: 3630: 3622: 3616: 3615: 3609: 3601: 3600:External links 3598: 3597: 3596: 3586: 3550: 3526: 3523: 3520: 3519: 3487: 3457: 3424: 3391: 3377:. 2016-05-26. 3362: 3332: 3314: 3297:. 2012-05-31. 3275: 3250: 3225: 3195: 3166: 3129: 3114: 3088: 3063: 3032: 3001: 2972: 2958: 2928: 2897: 2867: 2836: 2805: 2789:BoostCompanies 2775: 2761:. 2022-03-01. 2750: 2736:. 2022-02-18. 2734:"Web Security" 2725: 2699: 2680: 2644: 2601: 2558: 2517: 2488: 2457: 2432: 2402: 2389:978-0201379273 2388: 2380:Addison-Wesley 2362: 2330: 2300: 2277: 2241: 2216: 2213:on 2009-09-26. 2197: 2140: 2121: 2101: 2075: 2049: 2024: 2017: 1991: 1976: 1958: 1926: 1905:10.1.1.47.5194 1878: 1847: 1836:(4): 335–342. 1820: 1791: 1773: 1750: 1733:978-0442003647 1732: 1709: 1695:978-1450374187 1694: 1668: 1662:978-1684705276 1661: 1638: 1604: 1579:978-1450378994 1578: 1545: 1506: 1465: 1429: 1422: 1405: 1373: 1335: 1317: 1296: 1295: 1293: 1290: 1288: 1287: 1282: 1277: 1272: 1267: 1261: 1256: 1251: 1246: 1241: 1236: 1231: 1226: 1221: 1216: 1211: 1206: 1201: 1196: 1190: 1185: 1179: 1174: 1169: 1164: 1158: 1156: 1153: 1151: 1150: 1144: 1138: 1132: 1126: 1120: 1114: 1105: 1100: 1095: 1086: 1077: 1064: 1053: 1045: 1042: 1037:Stephen Breyer 979:Main article: 976: 973: 938: 935: 899: 896: 895: 894: 863: 844: 830: 827: 810: 807: 798: 795: 769: 766: 690:Main article: 687: 684: 648: 645: 589: 586: 558:Tools such as 498: 495: 493: 490: 438: 435: 390: 387: 324: 321: 288:filing cabinet 264:Maurice Wilkes 259: 256: 223: 220: 195: 192: 191: 190: 187: 97:user interface 48:Screenshot of 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 4182: 4171: 4168: 4166: 4163: 4161: 4158: 4156: 4153: 4152: 4150: 4135: 4132: 4128: 4125: 4123: 4120: 4119: 4118: 4115: 4113: 4110: 4108: 4105: 4103: 4100: 4098: 4095: 4093: 4090: 4089: 4087: 4083: 4077: 4074: 4072: 4069: 4067: 4064: 4062: 4059: 4057: 4054: 4052: 4049: 4047: 4044: 4042: 4039: 4037: 4034: 4033: 4031: 4029: 4024: 4020: 4014: 4011: 4009: 4006: 4004: 4001: 3999: 3996: 3994: 3993:Memory paging 3991: 3989: 3986: 3984: 3981: 3980: 3978: 3975: 3970: 3966: 3956: 3953: 3951: 3948: 3946: 3943: 3941: 3938: 3937: 3935: 3933: 3927: 3921: 3918: 3916: 3913: 3911: 3908: 3906: 3903: 3901: 3898: 3896: 3893: 3891: 3888: 3886: 3883: 3880: 3876: 3872: 3869: 3868: 3866: 3862: 3859: 3857: 3853: 3843: 3840: 3838: 3835: 3833: 3832:Device driver 3830: 3829: 3827: 3823: 3817: 3814: 3812: 3809: 3807: 3804: 3802: 3799: 3797: 3794: 3792: 3789: 3787: 3784: 3782: 3779: 3778: 3776: 3774: 3773:Architectures 3770: 3767: 3765: 3761: 3755: 3752: 3750: 3747: 3745: 3742: 3740: 3737: 3735: 3732: 3730: 3727: 3725: 3722: 3720: 3717: 3715: 3712: 3710: 3707: 3706: 3704: 3700: 3694: 3691: 3689: 3686: 3684: 3681: 3679: 3676: 3674: 3671: 3669: 3666: 3664: 3661: 3660: 3658: 3654: 3650: 3643: 3638: 3636: 3631: 3629: 3624: 3623: 3620: 3613: 3610: 3607: 3604: 3603: 3599: 3594: 3590: 3587: 3584: 3580: 3576: 3575:computer code 3572: 3568: 3567:computer code 3564: 3563: 3558: 3557:Court opinion 3554: 3551: 3546: 3542: 3538: 3534: 3529: 3528: 3524: 3504: 3497: 3491: 3488: 3476: 3472: 3468: 3461: 3458: 3445: 3441: 3440: 3435: 3428: 3425: 3412: 3408: 3407: 3402: 3395: 3392: 3380: 3376: 3372: 3366: 3363: 3351: 3347: 3343: 3336: 3333: 3328: 3324: 3318: 3315: 3300: 3296: 3289: 3287: 3279: 3276: 3264: 3260: 3254: 3251: 3239: 3235: 3229: 3226: 3214:on 2011-09-25 3213: 3209: 3205: 3204:"Annotations" 3199: 3196: 3185:on 2022-11-06 3184: 3180: 3176: 3170: 3167: 3151: 3147: 3140: 3133: 3130: 3125: 3121: 3117: 3115:9781450305952 3111: 3107: 3103: 3099: 3092: 3089: 3083: 3078: 3074: 3067: 3064: 3051: 3047: 3043: 3036: 3033: 3020: 3016: 3012: 3005: 3002: 2990: 2986: 2982: 2976: 2973: 2961: 2955: 2950: 2945: 2941: 2940: 2932: 2929: 2916: 2912: 2908: 2901: 2898: 2885: 2881: 2877: 2871: 2868: 2855: 2851: 2847: 2840: 2837: 2824: 2820: 2816: 2809: 2806: 2795:on 2016-09-17 2794: 2790: 2786: 2779: 2776: 2764: 2760: 2754: 2751: 2739: 2735: 2729: 2726: 2714: 2710: 2703: 2700: 2696: 2692: 2689: 2684: 2681: 2677: 2673: 2669: 2665: 2661: 2657: 2654: 2648: 2645: 2639: 2634: 2629: 2624: 2620: 2616: 2612: 2605: 2602: 2596: 2591: 2586: 2581: 2577: 2573: 2569: 2562: 2559: 2543: 2539: 2535: 2528: 2521: 2518: 2506: 2502: 2498: 2492: 2489: 2476: 2472: 2468: 2461: 2458: 2453: 2449: 2448: 2443: 2436: 2433: 2421: 2417: 2413: 2406: 2403: 2391: 2385: 2381: 2376: 2375: 2366: 2363: 2351: 2347: 2346: 2341: 2334: 2331: 2315: 2311: 2307: 2303: 2297: 2290: 2289: 2281: 2278: 2263: 2259: 2252: 2245: 2242: 2231:on 2015-04-02 2230: 2226: 2220: 2217: 2212: 2208: 2201: 2198: 2182: 2178: 2174: 2170: 2166: 2163:(2): 88–112. 2162: 2158: 2151: 2144: 2141: 2128: 2124: 2122:9780937175736 2118: 2114: 2113: 2105: 2102: 2090: 2086: 2079: 2076: 2064: 2060: 2053: 2050: 2038: 2034: 2028: 2025: 2020: 2014: 2010: 2006: 2002: 1995: 1992: 1987: 1983: 1979: 1977:9781492082798 1973: 1969: 1962: 1959: 1947: 1943: 1942: 1937: 1930: 1927: 1915: 1911: 1906: 1901: 1897: 1893: 1889: 1882: 1879: 1866: 1862: 1858: 1851: 1848: 1843: 1839: 1835: 1831: 1824: 1821: 1813:September 18, 1808: 1804: 1803: 1795: 1792: 1780: 1776: 1774:9781492026877 1770: 1766: 1765: 1757: 1755: 1751: 1739: 1735: 1729: 1725: 1724: 1719: 1718:Carl, Malamud 1713: 1710: 1705: 1701: 1697: 1691: 1687: 1683: 1679: 1672: 1669: 1664: 1658: 1654: 1653: 1648: 1642: 1639: 1634: 1626: 1622: 1621: 1615: 1608: 1605: 1593: 1589: 1585: 1581: 1575: 1571: 1567: 1563: 1559: 1552: 1550: 1546: 1538:September 18, 1533: 1529: 1528: 1523: 1522:Bloch, Joshua 1517: 1515: 1513: 1511: 1507: 1499:September 18, 1494: 1490: 1486: 1482: 1478: 1472: 1470: 1466: 1453: 1449: 1445: 1438: 1436: 1434: 1430: 1425: 1423:9781492026877 1419: 1415: 1409: 1406: 1394: 1390: 1389: 1384: 1377: 1374: 1370: 1362:September 18, 1357: 1353: 1349: 1342: 1340: 1336: 1324: 1320: 1318:9780123850041 1314: 1310: 1309: 1301: 1298: 1291: 1286: 1283: 1281: 1278: 1276: 1273: 1271: 1268: 1265: 1262: 1260: 1257: 1255: 1252: 1250: 1247: 1245: 1242: 1240: 1237: 1235: 1234:Name mangling 1232: 1230: 1229:Microservices 1227: 1225: 1222: 1220: 1217: 1215: 1212: 1210: 1207: 1205: 1202: 1200: 1197: 1194: 1191: 1189: 1186: 1183: 1180: 1178: 1175: 1173: 1172:Augmented web 1170: 1168: 1165: 1163: 1160: 1159: 1154: 1148: 1145: 1142: 1139: 1136: 1133: 1130: 1127: 1124: 1121: 1118: 1115: 1113: 1109: 1106: 1104: 1101: 1099: 1096: 1094: 1090: 1087: 1085: 1081: 1078: 1076: 1072: 1068: 1065: 1062: 1058: 1055: 1054: 1051: 1043: 1041: 1038: 1033: 1031: 1027: 1023: 1018: 1016: 1012: 1006: 1001: 999: 995: 992:ruled in the 991: 990:William Alsup 984: 983: 974: 972: 970: 966: 961: 959: 954: 950: 946: 942: 937:Documentation 936: 934: 931: 926: 923: 918: 913: 909: 904: 897: 891: 887: 883: 879: 875: 871: 867: 864: 860: 856: 852: 848: 845: 842: 839: 838: 837: 834: 828: 826: 824: 820: 816: 815:SQL injection 808: 806: 804: 796: 794: 792: 788: 783: 779: 775: 767: 765: 761: 759: 755: 751: 747: 743: 739: 738:Web resources 736:(REST) style 735: 731: 727: 723: 719: 713: 711: 707: 703: 699: 693: 685: 683: 680: 678: 674: 670: 665: 663: 659: 655: 646: 644: 642: 638: 634: 630: 625: 623: 619: 615: 613: 609: 605: 603: 599: 595: 587: 585: 583: 578: 576: 571: 569: 565: 561: 556: 553: 549: 541: 540:class methods 537: 533: 529: 524: 522: 518: 514: 509: 506: 504: 496: 491: 489: 487: 482: 478: 474: 470: 465: 463: 459: 455: 451: 447: 443: 436: 434: 432: 428: 424: 420: 416: 411: 407: 403: 398: 396: 388: 386: 383: 381: 377: 373: 371: 367: 361: 357: 352: 350: 346: 341: 337: 336: 330: 322: 317: 313: 308: 304: 302: 298: 297: 291: 289: 285: 281: 277: 273: 269: 268:David Wheeler 265: 257: 255: 253: 249: 245: 241: 233: 228: 221: 219: 217: 213: 209: 205: 201: 193: 188: 185: 181: 180: 179: 177: 172: 170: 169:microservices 166: 162: 158: 154: 150: 146: 141: 139: 134: 129: 127: 123: 119: 115: 110: 106: 100: 98: 94: 90: 86: 82: 78: 74: 70: 67:(abbreviated 66: 59: 55: 51: 46: 40: 33: 19: 4091: 4028:file systems 3920:Time-sharing 3560: 3536: 3510:. Retrieved 3490: 3479:. Retrieved 3470: 3460: 3448:. Retrieved 3439:Ars Technica 3437: 3427: 3415:. Retrieved 3404: 3394: 3383:. Retrieved 3375:Ars Technica 3374: 3365: 3354:. Retrieved 3345: 3335: 3317: 3306:. Retrieved 3285: 3278: 3267:. Retrieved 3253: 3242:. Retrieved 3228: 3216:. Retrieved 3212:the original 3198: 3187:. Retrieved 3183:the original 3178: 3169: 3157:. Retrieved 3145: 3132: 3097: 3091: 3072: 3066: 3054:. Retrieved 3046:Venture Beat 3045: 3035: 3023:. Retrieved 3014: 3004: 2993:. Retrieved 2989:the original 2984: 2975: 2963:. Retrieved 2938: 2931: 2919:. Retrieved 2910: 2900: 2888:. Retrieved 2879: 2870: 2858:. Retrieved 2849: 2839: 2827:. Retrieved 2818: 2808: 2797:. Retrieved 2793:the original 2788: 2778: 2767:. Retrieved 2753: 2742:. Retrieved 2728: 2717:. Retrieved 2702: 2683: 2667: 2663: 2647: 2621:(6): 62–69. 2618: 2614: 2604: 2575: 2571: 2561: 2549:. Retrieved 2537: 2533: 2520: 2509:. Retrieved 2500: 2491: 2479:. Retrieved 2475:the original 2470: 2460: 2452:the original 2445: 2435: 2424:. Retrieved 2415: 2405: 2393:. Retrieved 2373: 2365: 2354:. Retrieved 2343: 2333: 2321:. Retrieved 2287: 2280: 2269:. Retrieved 2244: 2233:. Retrieved 2229:the original 2219: 2211:the original 2200: 2188:. Retrieved 2160: 2156: 2143: 2131:. Retrieved 2111: 2104: 2093:. Retrieved 2078: 2067:. Retrieved 2052: 2041:. Retrieved 2035:. F2PY.org. 2027: 2000: 1994: 1967: 1961: 1950:. Retrieved 1939: 1929: 1917:. Retrieved 1895: 1881: 1869:. Retrieved 1860: 1850: 1833: 1829: 1823: 1811:. Retrieved 1801: 1794: 1783:. Retrieved 1763: 1742:. Retrieved 1722: 1712: 1677: 1671: 1651: 1641: 1618: 1607: 1596:. Retrieved 1561: 1536:. Retrieved 1526: 1497:. Retrieved 1456:. Retrieved 1447: 1413: 1408: 1397:. Retrieved 1386: 1376: 1367: 1360:. Retrieved 1351: 1327:. Retrieved 1307: 1300: 1034: 1019: 1008: 1003: 993: 986: 981: 968: 962: 955: 951: 947: 943: 940: 927: 921: 919: 908:Google Guava 905: 901: 893:validations. 876:public, and 865: 846: 840: 835: 832: 812: 800: 771: 762: 746:Semantic Web 714: 695: 681: 666: 650: 626: 616: 606: 591: 579: 572: 562:and F2PY, a 557: 550: 525: 510: 507: 500: 471:proposed by 469:Semantic Web 466: 445: 442:Roy Fielding 440: 399: 395:Carl Malamud 392: 384: 363: 353: 332: 328: 326: 301:Joshua Bloch 294: 292: 284:punched tape 261: 239: 237: 208:input/output 204:email client 197: 173: 142: 130: 125: 113: 101: 92: 88: 84: 68: 64: 62: 4046:Device file 4036:Boot loader 3950:Round-robin 3875:Cooperative 3811:Rump kernel 3801:Multikernel 3791:Microkernel 3688:Usage share 3450:February 8, 3056:27 February 2921:27 February 2890:27 February 2850:AdExchanger 1898:: 273–284. 1647:Date, C. J. 1162:API testing 998:copyrighted 874:Windows API 718:Web service 673:method call 647:Remote APIs 622:Windows API 481:Proprietary 312:Univac 1108 280:subroutines 216:file system 200:abstracting 151:, computer 118:subroutines 4149:Categories 3976:protection 3932:algorithms 3930:Scheduling 3879:Preemptive 3825:Components 3796:Monolithic 3663:Comparison 3481:2021-03-06 3385:2016-07-28 3356:2014-05-10 3308:2013-09-22 3269:2012-12-06 3244:2012-05-09 3218:2011-09-30 3189:2022-11-06 2995:2014-02-11 2880:cloudflare 2799:2016-02-01 2769:2022-07-15 2744:2022-03-29 2719:2022-03-29 2511:2020-04-30 2426:2019-10-01 2356:2020-07-18 2271:2009-06-04 2235:2015-03-27 2095:2013-11-05 2069:2011-08-25 2043:2011-12-18 2033:"F2PY.org" 1986:1144086840 1952:2020-07-18 1861:artima.com 1785:2023-03-21 1744:2020-09-19 1704:1175623233 1635:required.) 1598:2020-09-19 1588:1175621908 1448:Dr. Dobb's 1399:2022-03-29 1329:2023-03-21 1292:References 1167:API writer 1089:Ark Engine 922:deprecated 872:makes the 700:using the 698:Web server 662:invocation 366:Relational 360:C. J. Date 109:programmer 4066:Partition 3983:Bus error 3910:Real-time 3890:Interrupt 3816:Unikernel 3781:Exokernel 3545:2047-2390 3512:April 25, 3417:March 27, 3077:CiteSeerX 2860:14 August 2345:JavaWorld 2310:304864018 1941:JavaWorld 1900:CiteSeerX 1103:Java APIs 1093:HarmonyOS 1075:Macintosh 1005:commands. 886:platforms 870:Microsoft 654:databases 618:Microsoft 450:UC Irvine 356:databases 250:and even 238:The term 176:versioned 122:endpoints 89:implement 4112:Live USB 3974:resource 3864:Concepts 3702:Variants 3683:Timeline 3503:Archived 3475:Archived 3444:Archived 3411:Archived 3379:Archived 3350:Archived 3327:Archived 3299:Archived 3263:Archived 3238:Archived 3150:Archived 3124:17751901 3050:Archived 3025:2 August 3019:Archived 3009:Oracle. 2915:Archived 2884:Archived 2854:Archived 2829:2 August 2823:Archived 2763:Archived 2738:Archived 2713:Archived 2691:Archived 2668:ICSE '07 2656:Archived 2595:53856438 2551:8 August 2542:Archived 2505:Archived 2471:Mashable 2447:PC World 2420:Archived 2350:Archived 2314:Archived 2306:ProQuest 2262:Archived 2190:2 August 2181:Archived 2177:46082812 2133:2 August 2127:Archived 2089:Archived 2063:Archived 2037:Archived 1946:Archived 1914:59833827 1865:Archived 1807:Archived 1779:Archived 1738:Archived 1720:(1990). 1649:(2019). 1592:Archived 1532:Archived 1493:81600004 1452:Archived 1393:Archived 1356:Archived 1323:Archived 1239:Open API 1155:See also 1073:for the 1044:Examples 1022:fair use 1015:fair use 969:run-time 809:Security 686:Web APIs 602:compiled 530:such as 521:bytecode 419:internet 406:Web APIs 212:function 165:Internet 161:Web APIs 105:end user 81:software 4107:Live CD 4061:Journal 4025:access, 4023:Storage 3900:Process 3806:vkernel 3673:History 3656:General 3593:Textise 3583:machine 3159:22 July 2965:22 July 2481:26 July 2395:16 June 2323:29 July 1919:29 July 1871:29 July 1458:29 July 1352:Postman 1275:Web API 1249:Parsing 1184:(CORBA) 1098:EHLLAPI 1080:DirectX 890:RESTful 862:stream. 847:Partner 841:Private 758:mashups 722:Web 2.0 692:Web API 564:Fortran 370:Network 345:Fortran 194:Purpose 126:defines 50:Web API 3915:Thread 3786:Hybrid 3764:Kernel 3579:recipe 3543:  3122:  3112:  3079:  2956:  2662:". In 2638:543853 2635:  2592:  2386:  2308:  2298:  2258:USENIX 2175:  2119:  2015:  1984:  1974:  1912:  1902:  1771:  1730:  1702:  1692:  1659:  1586:  1576:  1491:  1420:  1315:  1254:Plugin 1143:(SAPI) 1135:OpenMP 1129:OpenGL 1123:OpenCL 1117:OpenAL 1071:Carbon 930:Akamai 866:Public 768:Design 633:binary 568:Python 429:, and 155:, and 93:expose 4117:Shell 4056:Inode 3539:(3). 3506:(PDF) 3499:(PDF) 3302:(PDF) 3295:Wired 3291:(PDF) 3153:(PDF) 3142:(PDF) 3120:S2CID 2633:S2CID 2590:S2CID 2545:(PDF) 2530:(PDF) 2317:(PDF) 2292:(PDF) 2265:(PDF) 2254:(PDF) 2184:(PDF) 2173:S2CID 2153:(PDF) 1910:S2CID 1629: 1285:XPCOM 1266:(SDK) 1195:(DOM) 1149:(SDL) 1067:Cocoa 915:@Beta 882:Cocoa 878:Apple 823:HTTPS 677:proxy 637:POSIX 608:Linux 598:POSIX 513:Scala 492:Usage 437:2000s 423:CORBA 408:. As 389:1990s 340:AFIPS 276:EDSAC 234:alone 3678:List 3595:URL) 3541:ISSN 3514:2021 3452:2019 3419:2018 3346:CNET 3161:2016 3110:ISBN 3058:2020 3027:2016 2967:2016 2954:ISBN 2923:2020 2892:2020 2862:2020 2831:2016 2553:2016 2483:2016 2397:2015 2384:ISBN 2325:2016 2296:ISBN 2192:2016 2135:2016 2117:ISBN 2013:ISBN 1982:OCLC 1972:ISBN 1921:2016 1873:2016 1815:2020 1769:ISBN 1728:ISBN 1700:OCLC 1690:ISBN 1657:ISBN 1584:OCLC 1574:ISBN 1540:2020 1501:2020 1489:LCCN 1460:2016 1418:ISBN 1364:2020 1313:ISBN 1110:for 1108:ODBC 1091:for 1082:for 1069:and 1061:SCSI 1059:for 1057:ASPI 859:Lyft 857:and 855:Uber 740:and 726:SOAP 706:JSON 671:; a 610:and 566:-to- 560:SWIG 517:Java 515:and 477:open 467:The 462:JSON 460:and 431:DCOM 415:Java 404:and 378:for 368:and 364:The 329:‑ing 266:and 114:call 58:APOD 54:NASA 4134:PXE 4122:CLI 4102:HAL 4092:API 3895:IPC 3102:doi 2944:doi 2672:doi 2623:doi 2580:doi 2165:doi 2005:doi 1838:doi 1682:doi 1566:doi 1481:hdl 710:XML 532:Lua 458:XML 448:at 427:COM 358:by 240:API 91:or 69:API 63:An 4151:: 3877:, 3559:, 3535:. 3473:. 3469:. 3442:. 3436:. 3409:. 3403:. 3373:. 3348:. 3344:. 3325:. 3293:. 3206:. 3177:. 3148:. 3144:. 3118:. 3108:. 3075:. 3048:. 3044:. 3017:. 3013:. 2983:. 2952:. 2913:. 2909:. 2878:. 2852:. 2848:. 2821:. 2817:. 2787:. 2711:. 2631:. 2619:59 2617:. 2613:. 2588:. 2576:15 2574:. 2570:. 2540:. 2536:. 2532:. 2503:. 2499:. 2469:. 2444:, 2414:. 2382:. 2378:. 2348:. 2342:. 2312:. 2304:. 2260:. 2256:. 2179:. 2171:. 2161:14 2159:. 2155:. 2125:. 2087:. 2061:. 2011:. 1980:. 1944:. 1938:. 1908:. 1894:. 1863:. 1859:. 1834:30 1832:. 1777:. 1753:^ 1736:. 1698:. 1688:. 1617:. 1590:. 1582:. 1572:. 1560:. 1548:^ 1509:^ 1487:. 1468:^ 1450:. 1446:. 1432:^ 1391:. 1385:. 1366:. 1354:. 1350:. 1338:^ 1321:. 917:. 817:, 760:. 596:. 542:. 488:. 425:, 397:. 254:. 147:, 3971:, 3881:) 3873:( 3641:e 3634:t 3627:v 3547:. 3516:. 3484:. 3454:. 3421:. 3388:. 3359:. 3311:. 3288:" 3284:" 3272:. 3247:. 3223:. 3221:. 3192:. 3163:. 3126:. 3104:: 3085:. 3060:. 3029:. 2998:. 2969:. 2946:: 2925:. 2894:. 2864:. 2833:. 2802:. 2772:. 2747:. 2722:. 2697:. 2678:. 2674:: 2666:( 2641:. 2625:: 2598:. 2582:: 2538:1 2514:. 2485:. 2429:. 2399:. 2359:. 2327:. 2274:. 2238:. 2194:. 2167:: 2137:. 2098:. 2072:. 2046:. 2021:. 2007:: 1988:. 1955:. 1923:. 1875:. 1844:. 1840:: 1817:. 1788:. 1747:. 1706:. 1684:: 1665:. 1627:. 1601:. 1568:: 1542:. 1503:. 1483:: 1462:. 1426:. 1402:. 1332:. 41:. 34:. 20:)

Index

Application Programming Interface
API (disambiguation)
Special:ApiHelp

Web API
NASA
APOD
computer programs
software interface
software
user interface
end user
programmer
subroutines
endpoints
hide the internal details
interoperability
programming languages
software libraries
operating systems
computer hardware
Web APIs
Internet
microservices
versioned
backward compatible
abstracting
email client
input/output
function

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.