Auch genannt: API
Eine Programmierschnittstelle (englisch Application Programming Interface, kurz API) legt fest, wie Software mit anderer Software oder mit Funktionen eines Systems kommuniziert. Dazu gehören etwa verfügbare Befehle, erwartete Eingaben und mögliche Antworten. Eine API richtet sich an Programme, nicht an Menschen: Sie ist daher etwas anderes als die sichtbare Benutzeroberfläche einer App.
Wer eine Wetter-App öffnet, sieht vielleicht Temperatur und Regenwahrscheinlichkeit. Die App kann diese Daten von einem Dienst beziehen, ohne dessen Datenbank selbst zu kennen. Stattdessen stellt sie eine Anfrage an eine API, zum Beispiel für einen Ort und einen Zeitpunkt. Der Dienst antwortet in einem vereinbarten Format. Die App kann die Antwort anschließend anzeigen oder weiterverarbeiten.
Eine API ist damit eine Absprache zwischen zwei technischen Seiten. Sie beschreibt, welche Möglichkeiten angeboten werden und unter welchen Bedingungen sie nutzbar sind. Der Anbieter kann seine interne Umsetzung ändern, solange die zugesagte Schnittstelle kompatibel bleibt. Umgekehrt muss die aufrufende Software die dokumentierten Regeln einhalten. MDN fasst APIs als Funktionen und Regeln zusammen, die Interaktionen mit einem Programm durch Software ermöglichen, und spricht dabei von einem Vertrag zwischen anbietender Anwendung und anderen Software- oder Hardware-Komponenten. MDN: API-Glossar
Bei einer Web-API sendet ein Client häufig eine HTTP-Anfrage an eine Adresse des Anbieters. Die Anfrage kann etwa eine Ressource lesen, Daten übermitteln oder eine Aktion auslösen. Der Server prüft Adresse, Methode, Berechtigung und Inhalt der Anfrage und sendet eine Antwort zurück. Für die aufrufende Anwendung zählen vor allem die dokumentierten Teile: Endpunkte, Parameter, Datenformate, Statuscodes und Fehlermeldungen.
Nicht jede API arbeitet über das Web. Betriebssysteme, Programmbibliotheken und Geräte stellen ebenfalls Programmierschnittstellen bereit. Gemeinsam ist ihnen, dass sie komplexe innere Abläufe hinter einer klaren Aufruffläche verbergen. Das erleichtert die Wiederverwendung: Ein Programm muss beispielsweise nicht selbst wissen, wie ein Browser auf Standortdaten zugreift, wenn eine passende Schnittstelle diese Funktion mit klaren Regeln anbietet.
Für Webanwendungen ist auch die Grenze zwischen Programmiersprache und API wichtig. Browser-APIs ergänzen etwa JavaScript, gehören aber nicht zur Sprache selbst. Die DOM-API erlaubt es einer Webseite, HTML und CSS eines geladenen Dokuments zu verändern. MDN: Einführung in Web-APIs
Ein Onlineshop möchte nach einer Bestellung eine Versandsoftware informieren. Die Shopsoftware übermittelt über deren API zum Beispiel Bestellnummer, Lieferadresse und Paketdaten. Die Versandsoftware antwortet mit einer Sendungsnummer oder einer Fehlermeldung, falls Angaben fehlen. Der Shop muss dafür nicht die interne Logik des Dienstes nachbauen.
Die Vereinbarung sollte präzise sein: Welche Felder sind Pflicht? In welchem Format steht ein Datum? Was bedeutet eine erfolgreiche oder abgelehnte Antwort? Eine bloße technische Verbindung genügt nicht. Erst die dokumentierte Bedeutung der Daten macht die Integration verlässlich. Wenn sich diese Bedeutung ändert, kann eine ältere Anwendung trotz erreichbarer Adresse falsche Ergebnisse verarbeiten.
APIs verbinden häufig Systeme, die sonst getrennt arbeiten: einen Shop mit Zahlungs- oder Versanddiensten, eine App mit Karten- oder Kalenderfunktionen oder ein internes System mit einer Datenquelle. Sie ermöglichen auch Automatisierung. Eine Anwendung kann nach einem Ereignis Daten abrufen oder einen Folgeprozess starten, ohne dass jemand Werte manuell kopiert. Für solche ereignisgesteuerten Benachrichtigungen ist ein Webhook eine verwandte Technik: Er informiert ein anderes System aktiv über ein Ereignis, während eine API-Anfrage oft von der aufrufenden Seite ausgeht.
In Unternehmen sind APIs zudem Bausteine für Workflow-Automatisierung. Ob daraus ein sinnvoller Ablauf entsteht, hängt jedoch von Berechtigungen, Datenqualität, Fehlerbehandlung und der fachlichen Prüfung der übertragenen Daten ab. Eine API macht einen Prozess nicht automatisch richtig oder sicher.
Eine API ist kein fertiges Programm und auch keine Garantie, dass zwei Systeme ohne weitere Arbeit zusammenpassen. Dokumentation, Zugangsdaten, Rechte und technische Grenzen gehören zur Nutzung. Manche Schnittstellen begrenzen Anfragen oder stellen Funktionen nur unter bestimmten Bedingungen bereit. Bei personenbezogenen oder vertraulichen Daten muss zusätzlich geklärt werden, welche Daten überhaupt übertragen werden dürfen und wie sie geschützt sind.
Ein verbreitetes Missverständnis lautet, eine API liefere immer aktuelle und fehlerfreie Daten. Tatsächlich kann eine Antwort unvollständig sein, sich verspätet haben oder einen Fehlerzustand melden. Gute Integrationen prüfen daher Antworten, behandeln Ausfälle und halten fest, auf welche Version einer Schnittstelle sie abgestimmt sind. Auch Änderungen an Feldern, Antwortformaten oder Berechtigungen können Anpassungen notwendig machen.
Eine API ist nicht dasselbe wie eine Benutzeroberfläche. Eine Benutzeroberfläche ist für Menschen gestaltet; eine API beschreibt maschinenlesbare Aufrufe und Antworten. Sie ist auch nicht identisch mit einem Webhook. Ein Webhook ist ein Mechanismus für ereignisbasierte Mitteilungen und kann Teil einer Integration sein. Eine API kann viele weitere Zugriffsarten und Funktionen anbieten.