API stands for Application Programming Interface. APIs are interfaces to and between software applications.
APIs have become increasingly important, especially in the context of web services and the Internet of Things (IoT). By enabling data providers to send information (data) and data recipients to receive it, APIs open up completely new possibilities for developing applications. Data providers and recipients are not necessarily private individuals, rather they are usually complex IT systems or platforms. To manage APIs, an application is needed to prepare the information being sent and received. This sometimes includes combining the data with other information from different APIs.
In colloquial terms, an API could be described as a middleman that helps the exchange of information between two actors. Since most use-cases require more than the simple exchange of information, this middleman also needs a "translation function" - i.e., a software component that converts the information sent into a format the recipient understands. In the context of DKSR, this "translator" is a connector.
For those interested in more technical details, we have listed more relevant terminology below:
Push & Pull Commands
The terms "Push API" and "Pull API" are commonly used terms that refer to when or by whom the command to send data is triggered.
With a Push API, new information is sent automatically from data sender to data receiver. A simple example here is a messenging service: Whenever a small red number appears on Whatsapp, it indicates that a new message has automatically been pushed by the sender to the recipient.
With a Pull API, the data transfer is initiated by the receiver. The receiver proactively asks the sender if there is new information. For example, in email programs there is often the option to manually click the "Send/Receive" button. At this moment, the recipient initiates a query with the API by clicking on the button to see if there is a new mail to read.
While other command options like "polling" or "webhooks" exist, these are modified forms of the two main types: "push" and "pull".
API Architectures
SOAP (Simple Object Access Protocol):
This is a protocol that uses XML as its data transmission format . The main function of the protocol is to define the structure of messages and the communication methods. It also uses WSDL (Web Services Definition Language) in a machine-readable document to publish a definition of its interface.
XML-RPC:
This is a protocol that uses a special XML format for data transmission. XML-RPC is older than SOAP, requires a minimal amount of bandwidth and is much easier to use.
JSON-RPC:
This protocol is similar to XML-RPC, but uses JSON instead of the XML format for data transfer. JSON is a format that is independent of programming languages for exchanging data between systems.
REST (Representational State Transfer):
REST is not a protocol like other web services, but a set of architectural principles. The REST service must have certain characteristics, such as including simple interfaces through which resources can be easily identified within the request. Another example is that the manipulation of resources through the interface must also be easily traceable.