Was ist eine Programmierschnittstelle (API)?

API steht für Application Programming Interface und bezeichnet eine Programmierschnittstelle, die die Kommunikation zwischen verschiedenen Anwendungen ermöglicht. Fremde Programme können über eine API Zugriff auf bestimmte Komponenten einer Software erhalten und Daten transferieren.

Anders als bei einer Binärschnittstelle findet die Programmanbindung auf Quelltext-Ebene statt. Operationen werden über Standardbefehle ausgeführt, sodass Kompatibilität mit unterschiedlichen Programmiersprachen gewährleistet ist. Eine API kann unter anderem auf Datenbanken, Festplatten, Grafikkarten und Benutzeroberflächen zugreifen.

Der Vorteil einer Programmierschnittstelle ist die einfache Integration neuer Anwendungskomponenten in ein bestehendes System. Zudem sind APIs meist ausführlich mit ihren dazugehörigen Parametern dokumentiert.

Wie funktioniert eine API?

Programmierschnittstellen (API) dienen insbesondere Entwicklern, um ihre Programme an ein anderes andocken zu lassen. Eine Programmierschnittstelle gibt vor, wie Daten erhalten und gesendet werden können. Die Befehle und Datentypen, die eine API akzeptiert, sind in Protokollen definiert. Sie werden von den entsprechenden Komponenten für eine einheitliche Kommunikation verwendet.

Grundsätzlich unterscheidet man zwischen internen/privaten APIs und externen/offenen APIs. Private Programmierschnittstellen können nur von den Programmierern innerhalb einer Organisation benutzt werden. Dadurch wird die Arbeit an unternehmensinternen Prozessen optimiert. Zusätzlich werden sie durch bestimmte Sicherheitsmaßnahmen vor unautorisiertem Zugang geschützt. Externe APIs stehen der Öffentlichkeit in Verzeichnissen für die Einbindung in andere Systeme zur Verfügung. Manchmal ist die Nutzung einer API jedoch beschränkt oder kostenpflichtig.

Anwendungsbereiche für Programmierschnittstellen

Mit APIs lässt sich eine Vielzahl von Prozessen miteinander verbinden:

Wettervorhersage

Globale Wetterdaten aus den verschiedensten internationalen Quellen werden über Programmierschnittstellen abgerufen und können dem Nutzer per App auf dem Smartphone angezeigt werden.

Terminbuchung

Dienstleister können mit APIs ihren Kunden ermöglichen, Buchungen auf Online-Portalen durchzuführen oder nach bestimmten Services zu suchen. Dies können zum Beispiel Terminauskünfte bei Arztpraxen oder der Vergleich von Flugpreisen sein. Die Webseite verbindet sich mit den Programmierschnittstellen der jeweiligen Dienstleister und generiert eine Übersicht mit den passendsten Optionen.

E-Commerce

Einzelhändler verwenden APIs, um den Bestand ihrer Produkte zu kontrollieren und Kunden Auskunft über die Verfügbarkeit zu geben.

Was ist der Unterschied von API und REST-API?

REST ist eine Abkürzung für Representational State Transfer und bezieht sich auf eine Softwarearchitektur, die sich nach den Grundsätzen und dem Verhalten des World Wide Web richtet. Eine REST-API ist eine bestimmte Form einer API, die für den Datentransfer auf verteilten Systemen verwendet wird. Die REST-Architektur besitzt im Vergleich zu einer allgemeinen API sechs Designprinzipien, die von Entwicklern eingehalten werden müssen:

Einheitliche Programmierschnittstelle

Die Ressourcen sind über einen bestimmten Uniform Resource Identifier (URI) zugänglich. Verschiedene Operationen können mithilfe von HTTP-Methoden über dieselben URI durchgeführt werden. Geeignete Formate für Ressourcen sind zum Beispiel JSON, XML oder Text.

Unabhängigkeit von Client und Server

Client- und Serveranwendungen müssen voneinander entkoppelt sein. Der Client sollte nichts weiter als den URI der jeweiligen Ressource benötigen.

Zwischenspeicher

Um die Skalierbarkeit des Servers zu erhöhen und die Performance des Clients zu verbessern, können Ressourcen im Cache gespeichert werden.

Zustandslosigkeit

Rest-APIs erfordern keine Informationen über Sitzungen. Wenn der Server Daten über die Client-Session benötigt, werden diese über eine separate Anfrage gesendet.

Mehrschichtige Systemarchitektur

Zwischen Client und Server kann es eine Reihe anderer Anwendungen geben, die miteinander kommunizieren. Der Client kann nicht erkennen, durch wie viele Server die Antwort übermittelt wurde.

Code auf Abruf (optional)

In den meisten Fällen werden über REST-APIs statische Ressourcen übertragen. Manchmal kann es sich aber auch um ausführbaren Code wie Java-Applets handeln. Dieser sollte nur auf Abruf ausgeführt werden.