5
5
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 commands.[60][61]
Alsup's ruling was overturned in 2014 on appeal to the Court of Appeals for the
Federal Circuit, though the question of whether such use of APIs constitutes fair
use was left unresolved.[62][63]
Examples
Main category: Application programming interfaces
ASPI for SCSI device interfacing
Cocoa and Carbon for the Macintosh
DirectX for Microsoft Windows
EHLLAPI
Java APIs
ODBC for Microsoft Windows
OpenAL cross-platform sound API
OpenCL cross-platform API for general-purpose computing for CPUs & GPUs
OpenGL cross-platform graphics API
OpenMP API that supports multi-platform shared memory multiprocessing programming
in C, C++, and Fortran on many architectures, including Unix and Microsoft Windows
platforms.
Server Application Programming Interface (SAPI)
Simple DirectMedia Layer (SDL)
See also
API testing
API writer
Augmented web
Calling convention
Common Object Request Broker Architecture (CORBA)
Comparison of application virtual machines
Document Object Model (DOM)
Double-chance function
Foreign function interface
Front and back ends
Interface (computing)
Interface control document
List of 3D graphics APIs
Microservices
Name mangling
Open API
Open Service Interface Definitions
Parsing
Plugin
RAML (software)
Software development kit (SDK)
Web API
Web content vendor
XPCOM
References
Reddy, Martin (2011). API Design for C++. Elsevier Science. p. 1. ISBN
2110400030697. {{cite book}}: Check |isbn= value: invalid prefix (help)
Lane, Kin (October 10, 2019). "Intro to APIs: History of APIs". Postman. Retrieved
September 18, 2020. 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 almost
as long as computing, but modern web APIs began taking shape in the early 2000s.
Pedro, Bruno (2024). Building an API Product: Design, Implement, Release, and
Maintain API Products that Meet User Needs. Packt Publishing. p. 4. ISBN
9781837638536.
Biehl, Matthias (2016). RESTful API Design. API-University Press. p. 10. ISBN
9781514735169.
Clarke, Steven (2004). "Measuring API Usability". Dr. Dobb's. Retrieved 29 July
2016.
Jin, Brenda; Sahni, Saurabh; Shevat, Amir (2018). "Preface". Designing Web APIs:
Building APIs That Developers Love. O'Reilly Media. ISBN 9781492026877.
Geewax, JJ (2021). API Design Patterns. Manning. p. 6. ISBN 9781638350330.
Jacobson, Daniel; Brail, Greg; Woods, Dan (2011). APIs: A Strategy Guide. O'Reilly
Media. p. 4. ISBN 9781449321642.
Database architectures � a feasibility workshop (Report). Washington, DC: U.S.
Department of Commerce, National Bureau of Standards. April 1981. pp. 45�47.
hdl:2027/mdp.39015077587742. LCCN 81600004. NBS special publication 500-76.
Retrieved September 18, 2020.
Bloch, Joshua (August 8, 2018). A Brief, Opinionated History of the API (Speech).
QCon. San Francisco: InfoQ. Retrieved September 18, 2020.
Cotton, Ira W.; Greatorex, Frank S. (December 1968). "Data structures and
techniques for remote computer graphics". AFIPS '68: Proceedings of the December
9�11, 1968, Fall Joint Computer Conference. AFIPS 1968 Fall Joint Computer
Conference. Vol. I. San Francisco, California: Association for Computing Machinery.
pp. 533�544. doi:10.1145/1476589.1476661. ISBN 978-1450378994. OCLC 1175621908.
"application program interface". Oxford English Dictionary (Online ed.). Oxford
University Press. (Subscription or participating institution membership required.)
Date, C. J. (2019). E. F. Codd and Relational Theory: A Detailed Review and
Analysis of Codd's Major Database Writings. Lulu.com. p. 135. ISBN 978-1684705276.
Date, C. J.; Codd, E. F. (January 1975). "The relational and network approaches:
Comparison of the application programming interfaces". In Randall Rustin (ed.).
Proceedings of 1974 ACM-SIGMOD Workshop on Data Description, Access and Control.
SIGMOD Workshop 1974. Vol. 2. Ann Arbor, Michigan: Association for Computing
Machinery. pp. 83�113. doi:10.1145/800297.811532. ISBN 978-1450374187. OCLC
1175623233.
Carl, Malamud (1990). Analyzing Novell Networks. Van Nostrand Reinhold. p. 294.
ISBN 978-0442003647.
Jin, Brenda; Sahni, Saurabh; Shevat, Amir (2018). Designing Web APIs. O'Reilly
Media. ISBN 9781492026877.
Fielding, Roy (2000). Architectural Styles and the Design of Network-based
Software Architectures (PhD). Retrieved September 18, 2020.
Dotsika, Fefie (August 2010). "Semantic APIs: Scaling up towards the Semantic
Web". International Journal of Information Management. 30 (4): 335�342.
doi:10.1016/j.ijinfomgt.2009.12.003.
Odersky, Martin; Spoon, Lex; Venners, Bill (10 December 2008). "Combining Scala
and Java". www.artima.com. Retrieved 29 July 2016.
de Figueiredo, Luiz Henrique; Ierusalimschy, Roberto; Filho, Waldemar Celes
(1994). "The design and implementation of a language for extending applications".
Proceedings of XXI Brazilian Seminar on Software and Hardware. pp. 273�284.
CiteSeerX 10.1.1.47.5194. S2CID 59833827. Retrieved 29 July 2016.
Sintes, Tony (13 July 2001). "Just what is the Java API anyway?". JavaWorld.
Retrieved 2020-07-18.
Winters, Titus; Tom Manshreck; Hyrum Wright, eds. (2020). Software engineering at
Google: lessons learned from programming over time. Sebastopol, CA: O'Reilly Media.
ISBN 9781492082798. OCLC 1144086840.
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". Proceedings of the 2015 ACM SIGPLAN International Conference on
Object-Oriented Programming, Systems, Languages, and Applications. New York, New
York, U.S.: Association for Computing Machinery. pp. 695�710.
doi:10.1145/2814270.2814313. ISBN 978-1-4503-3689-5.
Emery, David. "Standards, APIs, Interfaces and Bindings". Acm.org. Archived from
the original on 2015-01-16. Retrieved 2016-08-08.
"F2PY.org". F2PY.org. Retrieved 2011-12-18.
Fowler, Martin. "Inversion Of Control".
Fayad, Mohamed. "Object-Oriented Application Frameworks".
Lewine, Donald A. (1991). POSIX Programmer's Guide. O'Reilly & Associates, Inc. p.
1. ISBN 9780937175736. Retrieved 2 August 2016.
West, Joel; Dedrick, Jason (2001). "Open source standardization: the rise of Linux
in the network era" (PDF). Knowledge, Technology & Policy. 14 (2): 88�112.
doi:10.1007/PL00022278. Retrieved 2 August 2016.
Microsoft (October 2001). "Support for Windows XP". Microsoft. p. 4. Archived from
the original on 2009-09-26.
"LSB Introduction". Linux Foundation. 21 June 2012. Archived from the original on
2015-04-02. Retrieved 2015-03-27.
Stoughton, Nick (April 2005). "Update on Standards" (PDF). USENIX. Retrieved 2009-
06-04.
Bierhoff, Kevin (23 April 2009). "API Protocol Compliance in Object-Oriented
Software" (PDF). CMU Institute for Software Research. Retrieved 29 July 2016.
Wilson, M. Jeff (10 November 2000). "Get smart with proxies and RMI". JavaWorld.
Retrieved 2020-07-18.
Henning, Michi; Vinoski, Steve (1999). Advanced CORBA Programming with C++.
Addison-Wesley. ISBN 978-0201379273. Retrieved 16 June 2015.
"API-fication" (PDF). www.hcltech.com. August 2014.
Benslimane, Djamal; Schahram Dustdar; Amit Sheth (2008). "Services Mashups: The
New Generation of Web Applications". IEEE Internet Computing. 12 (5). IEEE: 13�15.
doi:10.1109/MIC.2008.110. Retrieved 2019-10-01.
Niccolai, James (2008-04-23), "So What Is an Enterprise Mashup, Anyway?", PC
World, archived from the original on 2017-10-10, retrieved 2017-09-17
Parr, Ben (21 May 2009). "The Evolution of the Social Media API". Mashable.
Retrieved 26 July 2016.
"GET trends/place". developer.twitter.com. Retrieved 2020-04-30.
Parnas, D.L. (1972). "On the Criteria To Be Used in Decomposing Systems into
Modules" (PDF). Communications of the ACM. 15 (12): 1053�1058.
doi:10.1145/361598.361623. S2CID 53856438.
Garlan, David; Shaw, Mary (January 1994). "An Introduction to Software
Architecture" (PDF). Advances in Software Engineering and Knowledge Engineering. 1.
Retrieved 8 August 2016.
de Ternay, Guerric (Oct 10, 2015). "Business Ecosystem: Creating an Economic
Moat". BoostCompanies. Archived from the original on 2016-09-17. Retrieved 2016-02-
01.
Boyd, Mark (2014-02-21). "Private, Partner or Public: Which API Strategy Is Best
for Business?". ProgrammableWeb. Retrieved 2 August 2016.
Weissbrot, Alison (7 July 2016). "Car Service APIs Are Everywhere, But What's In
It For Partner Apps?". AdExchanger.
"Cloudflare API v4 Documentation". cloudflare. 25 February 2020. Retrieved 27
February 2020.
Liew, Zell (17 January 2018). "Car Service APIs Are Everywhere, But What's In It
For Partner Apps". Smashing Magazine. Retrieved 27 February 2020.
Shi, Lin; Zhong, Hao; Xie, Tao; Li, Mingshu (2011). An Empirical Study on
Evolution of API Documentation. International Conference on Fundamental Approaches
to Software Engineering. Lecture Notes in Computer Science. Vol. 6603. pp. 416�431.
doi:10.1007/978-3-642-19811-3_29. ISBN 978-3-642-19810-6. Retrieved 22 July 2016.
google/guava: Google Core Libraries for Java on GitHub
Oracle. "How and When to Deprecate APIs". Java SE Documentation. Retrieved 2
August 2016.
Mendez, Diego; Baudry, Benoit; Monperrus, Martin (2013). Empirical evidence of
large-scale diversity in API usage of object-oriented software. 2013 IEEE 13th
International Working Conference on Source Code Analysis and Manipulation (SCAM).
pp. 43�52. arXiv:1307.4062. doi:10.1109/SCAM.2013.6648183. ISBN 978-1-