Was ist eine API und wie funktioniert sie?

Autor: Veröffentlicht

Kurz gesagt: Eine API ist eine Programmierschnittstelle, also ein Regelwerk, über das ein Programm auf Daten oder Funktionen eines anderen zugreifen kann. So lässt sich beispielsweise eine Wettervorhersage in eine App laden, eine Bestellung an ein Lagerverwaltungssystem übermitteln oder die Erstellung eines Versandetiketts anfordern. Die API legt fest, welche Operationen verfügbar sind, wie man sie aufruft und wie das Ergebnis zu interpretieren ist.

Wie funktioniert eine API in der Praxis?

Die Abkürzung API steht für das englische Application Programming Interface. Mit Schnittstelle ist hier die Kommunikation zwischen Softwarekomponenten gemeint, nicht ein Bildschirm mit Schaltflächen. Während Nutzer eine Anwendung über ein Formular oder Menü bedienen, kann ein Programm über die API eines anderen Systems auf dessen Funktionen zugreifen.

Eine API lässt sich mit einem Bestellformular vergleichen: Es gibt vor, was bestellt werden kann, welche Angaben nötig sind und welche Bestätigung zu erwarten ist. Um eine Bestellung korrekt aufzugeben, muss man die interne Organisation des Lagers nicht kennen. Ebenso muss eine Anwendung nicht wissen, wie das andere System Daten speichert oder Berechnungen durchführt.

Bei einer typischen internetbasierten API läuft die Kommunikation so ab:

  1. Die Anwendung sendet eine Anfrage, mit der sie Daten oder die Ausführung einer Operation anfordert.
  2. Das empfangende System prüft, ob die Anfrage gültig ist und, falls erforderlich, ob der Absender die nötigen Berechtigungen besitzt.
  3. Das System führt die Operation aus und sendet eine Antwort mit dem Ergebnis oder einer Fehlermeldung zurück.

Nicht jede API funktioniert über das Internet. Auch Betriebssysteme und Bibliotheken stellen Programmierschnittstellen bereit. Bibliotheken sind fertige Sammlungen von Funktionen, die beim Programmieren genutzt werden. Wenn es um die Verbindung von Diensten geht, bezeichnet „API“ jedoch meist die Kommunikation über ein Netzwerk.

Beispiel: Ein Shop beauftragt den Paketversand

Stell dir einen Onlineshop vor, der mit dem System eines Paketdienstes verbunden ist. Sobald eine Bestellung bezahlt wurde, übermittelt die Shopsoftware über die API die für den Versand nötigen Daten, etwa die Empfängeradresse, die gewählte Versandart und die Paketdaten. Das System des Paketdienstes kann daraufhin eine Sendungsnummer und ein Etikett zum Ausdrucken zurückgeben.

Ein Mitarbeiter muss diese Angaben dann nicht noch einmal in das Portal des Paketdienstes eingeben. Später kann der Shop den Sendungsstatus abrufen und dem Kunden anzeigen. Welche Aktionen möglich sind und welche Daten benötigt werden, hängt von der jeweiligen API ab.

Dass der Paketdienst eine API bereitstellt, bedeutet aber nicht, dass der Shop sie automatisch nutzt. Dafür ist eine Integration nötig, also eine eingerichtete Verbindung zwischen den Systemen: ein fertiges Plugin, ein Automatisierungsdienst oder ein separates Programm. Die API ermöglicht die Kommunikation; die Integration setzt einen konkreten Geschäftsprozess um.

Was bedeuten Endpunkt, HTTP und JSON?

In der Dokumentation einer internetbasierten API ist häufig von einem Endpunkt die Rede: einer konkreten Adresse, unter der eine bestimmte Funktion oder Ressource verfügbar ist. Beispielsweise könnte der Pfad /produkte/123 auf die Daten des Produkts mit der Kennung 123 verweisen. Das ist nur ein Beispiel — die tatsächlichen Adressen legt der Dienstanbieter fest.

Viele dieser Schnittstellen verwenden HTTP, ein Kommunikationsprotokoll, das auch für Websites genutzt wird. Eine Anfrage enthält eine Methode, die die Art der Aktion angibt. Die Methode GET dient zum Abrufen von Daten. POST wird häufig zum Übermitteln von Daten verwendet, beispielsweise beim Anlegen einer Bestellung.

Die Antwort kann in JSON vorliegen, einem textbasierten Datenformat, das Programme lesen können. Ein einfaches Ergebnis könnte so aussehen: {"id":123,"name":"Becher","verfuegbar":true}. Die Anwendung liest die Felder aus und zeigt anhand dieser Angaben den Produktnamen und die Verfügbarkeit an.

Eine API übermittelt auch Fehlerinformationen. Bei der Kommunikation über HTTP bedeutet der Code 404 in der Regel, dass die angegebene Ressource nicht gefunden wurde. 429 weist darauf hin, dass die zulässige Häufigkeit von Anfragen überschritten wurde. Eine korrekt umgesetzte Integration muss auch mit ausbleibenden Antworten, einem nicht verfügbaren Dienst und fehlerhaften Daten umgehen können, statt davon auszugehen, dass jede Operation erfolgreich ist.

Muss man programmieren können, um eine API zu nutzen?

Wenn ein fertiges Plugin den benötigten Dienst unterstützt, kann es für die Nutzung einer API genügen, die Konten zu verbinden und einige Optionen einzustellen. Mit Automatisierungswerkzeugen lassen sich auch einfache Abläufe ohne eigenen Code erstellen, etwa um Anfragen aus einem Formular an ein Kundenservice-System weiterzuleiten.

Ein Programmierer wird meist dann benötigt, wenn es keine fertige Verbindung gibt oder der Prozess eine spezielle Logik erfordert. Ein Beispiel ist der Abgleich von Lagerbeständen aus mehreren Quellen: Dabei müssen widersprüchliche Daten aufgelöst und fehlgeschlagene Operationen sicher erneut ausgeführt werden.

Eine Alternative zur API kann der manuelle Export und Import von Dateien sein. Werden nur gelegentlich kleine Datenmengen ausgetauscht, reicht das möglicherweise aus. Eine API ist sinnvoller, wenn der Austausch häufig erfolgt oder die Daten ohne manuelles Starten eines Exports in das andere System gelangen sollen.

Was solltest du vor der Verbindung von Diensten prüfen?

Der Zugang zu einer API ist nicht unbedingt öffentlich oder kostenlos. Häufig benötigt man einen API-Schlüssel oder ein Token, also Zugangsdaten, mit denen die Zugriffsberechtigung nachgewiesen wird. Vertrauliche Schlüssel gehören weder in den öffentlich zugänglichen Code einer Website noch in die Hände von Personen, die sie nicht benötigen.

Prüfe vor der Umsetzung in der offiziellen Dokumentation und den Bedingungen des Anbieters:

Beschreibe zunächst eine einzelne Aufgabe, beispielsweise „Nach Zahlungseingang eine Sendung anlegen“. Prüfe anschließend, ob es dafür eine fertige Integration gibt. Falls nicht, prüfe, ob die API beider Systeme die Funktionen bereitstellen, die zur Ausführung dieser Aufgabe nötig sind.

Siehe auch: Was ist 2FA?

Lesen Sie auch

Wie PHP-FPM PHP-Anfragen verarbeitet, sich vom Webserver unterscheidet und wie du Prozesse an Last und Hosting-Ressourcen anpasst.
BIND ist offene DNS-Serversoftware. Erfahre, welche Aufgaben sie übernimmt und wann sich der Betrieb eines eigenen Servers lohnt.
Was Polens REGON-Register und seine Kennnummer bedeuten, wie sie sich von NIP und KRS unterscheiden und wie Sie Unternehmensdaten prüfen.