WHAT API
Ashish Ranjan
IT Recruiter- Talent Acquisition || B.TECH(EEE) || Tech & Non-Tech Hiring || Leadership Hiring || Corporate Hiring
An?application programming interface?(API) is a way for two or more?computer programs?to communicate with each other. It is a type of software?interface, offering a service to other pieces of?software.[1]?A document or standard that describes how to build or use 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?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?call?that portion of the API. The calls that make up the API are also known as?subroutines, methods, requests, or?endpoints. An API specification?defines?these calls, meaning that it explains how to use or implement them.
One purpose of APIs is to?hide the internal details?of how a system works, exposing only those parts a programmer will find useful and keeping them consistent even if the internal details later change. An API may be custom-built for a particular pair of systems, or it may be a shared standard allowing?interoperability?among many systems.
There are APIs for?programming languages,?software libraries, computer?operating systems, and?computer hardware. 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?web APIs,[2]?which allow communication between computers that are joined by the?internet. Recent developments in APIs have led to the rise in popularity of?microservices, which are loosely coupled services accessed through public APIs.[3]
Purpose[edit]
In building applications, an API simplifies programming by?abstracting?the underlying implementation and only exposing objects or actions the developer needs. While a graphical interface for an?email client?might provide a user with a button that performs all the steps for fetching and highlighting new emails, an API for file?input/output?might give the developer a?function?that copies a file from one location to another without requiring that the developer understand the?file system?operations occurring behind the scenes.[4]
History of the term[edit]
A diagram from 1978 proposing the expansion of the idea of the API to become a general programming interface, beyond?application programs?alone[5]
领英推荐
The term?API?initially described an interface only for end-user-facing programs, known as?application programs. This origin is still reflected in the name "application programming interface." Today, the term is broader, including also?utility software?and even?hardware interfaces.[6]
1940s and 1950s[edit]
The idea of the API is much older than the term itself. British computer scientists?Maurice Wilkes?and?David Wheeler?worked on a modular?software library?in the 1940s for?EDSAC, an early computer. The?subroutines?in this library were stored on?punched paper tape?organized in a?filing cabinet. 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.[6]
Wilkes and Wheeler's 1951 book?The Preparation of Programs for an Electronic Digital Computer?contains the first published API specification.?Joshua Bloch?considers that Wilkes and Wheeler "latently invented" the API because it is more of a concept that is discovered than invented.[6]
Although the people who coined the term API were implementing software on a?Univac 1108, the goal of their API was to make?hardware independent?programs possible.[7]
1960s and 1970s[edit]
The term "application program interface" (without an?-ing?suffix) is first recorded in a paper called?Data structures and techniques for remote?computer graphics?presented at an?AFIPS?conference in 1968.[8][6]?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?Fortran?subroutine calls) was intended to free the?