An application programming interface (API) is a set of definitions, procedures and protocols of the ways in which one computer software communicates with another. One of the primary purposes of an API is to provide a set of commonly-used functions. Programmers can then take advantage of the API by making use of its functionality, saving them the task of programming everything from scratch.
APIs are also a type of Middleware that provide for data sharing across different platforms.There are four types of APIs that are enablers of data sharing between different software applications on single or distributed platforms:
- Remote Procedure Calls (RPCs): for programs communicate via procedures (or tasks) that act on shared data buffers.
- Standard Query Language (SQL): a non-procedural data access language that allows data sharing between applications by access into a common database.
- file transfer: File transfer allows for data sharing by sending formatted files between applications.
- message delivery: Message delivery provides data sharing by direct interprogram communications via small formatted messages between loosely- or tightly-coupled applications.
Current standards that apply to APIs include the ANSI standard SQL API. There are ongoing efforts to define standards for the other types. APIs can be developed for all computing platforms and operating systems or purchased for most platforms and operating systems. These APIs communicate data in different formats (e.g., shared data buffers, database structures, and file constructs). Each data format requires different network commands and parameters to communicate the data properly and can cause many different types of errors. Therefore, in addition to the knowledge required to perform the data sharing tasks, these types of APIs must account for hundreds of network parameters and hundreds of possible error conditions that each application must understand if it is to deliver robust interprogram communications. A message delivery API, in contrast, will offer a smaller subset of commands, network parameters, and error conditions because this API deals with only one format (messages). Because of this reduced complexity, message delivery APIs are a better choice when applications require data sharing across multiple platforms.
An API can be contrasted with a graphical user interface (GUI) or a command interface (both of which are direct user interfaces) as interfaces to an operating system or a program.
Sometimes, companies make the APIs of their systems open to the public. In other words, they make their system interface standards and even the source code available for anyone to use for system integration, customization and application purpose. This is called Open API.
Related Terms: GUI, RPC, SQL,Middleware
Reference Links: http://www.sei.cmu.edu/str/descriptions/api.html: Application Programming Interface
