WHAT API

WHAT API

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?

要查看或添加评论,请登录

Ashish Ranjan的更多文章

  • WHAT IS AGILE

    WHAT IS AGILE

    In software development, agile practices (sometimes written "Agile")[1] include requirements discovery and solutions…

  • WHAT IS GCP

    WHAT IS GCP

    Google Cloud Platform (GCP), offered by Google, is a suite of cloud computing services that runs on the same…

  • WHAT IS AGILE

    WHAT IS AGILE

    In software development, agile practices (sometimes written "Agile")[1] include requirements discovery and solutions…

  • WHAT IS UNITY 3D

    WHAT IS UNITY 3D

    Unity is a cross-platform game engine developed by Unity Technologies, first announced and released in June 2005 at…

  • WHAT IS SHELL SCRIPTING

    WHAT IS SHELL SCRIPTING

    A shell script is a computer program designed to be run by a Unix shell, a command-line interpreter.[1] The various…

  • WHAT IS API

    WHAT IS API

    An application programming interface (API) is a way for two or more computer programs to communicate with each other…

  • WHAT IS JAVA DEVELOPER

    WHAT IS JAVA DEVELOPER

    Despite its age and legacy, Java remains one of the most popular programming languages to this day. According to a 2021…

  • WHAT IS POWER BI

    WHAT IS POWER BI

    Microsoft Power BI is an interactive data visualization software product developed by Microsoft with a primary focus on…

  • WHAT IS PMO

    WHAT IS PMO

    A project management office (abbreviated to PMO) is a group or department within a business, government agency, or…

  • WHAT IS NETWORKING

    WHAT IS NETWORKING

    A computer network is a set of computers sharing resources located on or provided by network nodes. Computers use…

社区洞察

其他会员也浏览了