Die Programmierschnittstelle

Was ist ein Application-Programming-Interface (API)?

| Autor / Redakteur: Otto Geißler / Ulrike Ostler

Die Bereitstellung einer API sollte idealerweise gemeinsam mit einer ausführlichen Dokumentation der einzelnen Funktionen, der genauen Syntax und der möglichen Parameter (Eingabe- und Ausgabeparameter) erfolgen.
Die Bereitstellung einer API sollte idealerweise gemeinsam mit einer ausführlichen Dokumentation der einzelnen Funktionen, der genauen Syntax und der möglichen Parameter (Eingabe- und Ausgabeparameter) erfolgen. (Bild: © djama - stock.adob.com)

Eine Application-Programming-Interface (oder auch Application-Program-Interface, kurz: API) ist eine Schnittstelle, die es zwei Programmen ermöglicht, miteinander zu kommunizieren. Frei ins Deutsche übersetzt, kann eine API auch als „Schnittstelle zur Anwendungsprogrammierung“ oder „Programmierschnittstelle“ bezeichnet werden.

Eine API ist also ein Programmteil, das die Verbindung eines Programms zu anderen Programmen oder Systemen auf Quelltext-Ebene ermöglicht. Oder nochmals anders gewendet: Eine API stellt die Kommunikation zwischen zwei Programmen oder Systemen in Echtzeit her. Dabei werden Informationen zwischen einer Anwendung und einzelnen Programmteilen standardisiert ausgetauscht. Die Übergabe der Daten und Befehle erfolgt strukturiert nach einer definierten Syntax.

Die Programmierschnittstelle gestattet es, die Programmierung zu modularisieren und auf diese Weise zu vereinfachen. Damit ist die Kommunikation der einzelnen Programmmodule auch nur über diese Schnittstelle möglich.

Dabei bleibt der eigentliche Programmablauf innerhalb des Moduls für das Application Programming Interface unerheblich. Die Schnittstelle gibt lediglich vor, in welcher Form die Informationen vom Anwendungsmodul entgegengenommen und wieder zurückgesendet werden. Im Vergleich zu einer Binärschnittstelle erfolgt in einer Programmierschnittstelle die Anbindung rein auf der Quelltext-Ebene.

Application-Programming-Interface im Einsatz

Programmierschnittstellen werden in der Praxis gerne verwendet, um Daten zuverlässig in Echtzeit zwischen zwei Systemen zu übertragen. Dazu gehören der Datenimport aus einem isolierten, entfernten System, zum Beispiel bei von einem Kassen- in ein zentrales CRM-System oder der Abruf von Inhalten eines externen Daten-Anbieters wie zum Beispiel von Wetterdaten für personalisierte E-Mails.

API kommen auch für die Fernsteuerung von Systemen zum Einsatz. Beispielsweise können Routinen per Aufruf einer Funktion initiiert oder beendet sowie Datenmaterialien in Echtzeit abgerufen und weiterverarbeitet werden. Die API erlaubt so den Zugriff auf Hardwarekomponenten, Datenbanken, einzelne Programmfunktionen oder auf Oberflächen und weitere Elemente.

Die Bereitstellung einer API sollte idealerweise gemeinsam mit einer ausführlichen Dokumentation der einzelnen Funktionen, der genauen Syntax und der möglichen Parameter (Eingabe- und Ausgabeparameter) erfolgen. Für den Fall, dass keine genaue Dokumentation vorliegt, muss mit dem Risiko gerechnet werden, dass plötzliche Eingaben oder Ausgaben die Verarbeitung der Daten stören.

Einteilung in verschiedene Typklassen

Programmierschnittstellen lassen sich in vier verschiedene Typen unterteilen: funktionsorientierte API, zum Beispiel Dynamic Link Library, dateiorientierte API, zum Beispiel Gerätedateien unter Unix, objektorientierte API, zum Beispiel ActiveX-DLLs und protokollorientierte API, etwa FTP.

Funktionsorientierte Schnittstellen verwenden zur Kommunikation hauptsächlich Funktionen und deren Parameter. Datei-orientierte APIs dagegenadressieren mithilfe von diversen Dateisystemaufrufen einzelne Dateien und Dateifunktionen. Objektorientierte Programmierschnittstellen sind mit ihren Schnittstellenzeigern im Vergleich zu den rein funktionsorientierten Schnittstellen wesentlich flexibler. Protokollorientierte APIs zeichnen sich durch ihre Unabhängigkeit von Betriebssystemen oder einer bestimmten Hardware aus.

Abgrenzung Benutzer- und Programmierschnittstelle

APIs (Application Programming Interfaces) lassen sich von einer Benutzerschnittstelle (User Interface) sehr genau unterscheiden. Während die Benutzerschnittstelle eine Schnittstelle zwischen dem Programm und dem Anwender der Software darstellt, entspricht die API einem maschinenlesbaren Programmcode.

Die Benutzerschnittstelle nimmt den Input des Benutzers auf, leitet ihn an die Anwendung weiter und gibt die Ergebnisse wieder an den Benutzer zurück. Die API kommt mit dem Nutzer nicht in Berührung, sondern verarbeitet entgegengenommene Daten und überträgt die jeweiligen Resultate an das Modul zurück.

Abgrenzung REST-API

Im Vergleich zu den REST-API (Representational State Transfer-API) kann man festhalten: Eine REST-API ist eine Schnittstelle, die den Austausch von Daten auf verteilten Systemen unterstützt. Das gilt vor allem für Web-Services.

Dadurch ist das System in der Lage, Daten und Aufgaben auf unterschiedliche Server zu verteilen oder mithilfe des HTTP-Requests anzufordern. Historisch gesehen ging das REST-Konzept aus dem HTTP-Object-Model hervor. Daher weisen bereits viele Web-Services eine hohe REST-Kompatibilität auf.

Application-Programming-Interface für die Cloud

Eine Cloud-API ist eine spezielle Form von API, die für eine Bereitstellung von beispielsweise Cloud-Hardware, -Software und -Plattformen zum Einsatz kommen.

So stellen Infrastruktur-API Computer und Speicher (Infrastructure-as-a-Service - IaaS), Software- beziehungsweise Anwendungs-API Konnektivität und Interaktion mit einer Software-Suite (Software as a Service - SaaS) und Plattform-API Back-End-Architektur für die Erstellung von intensiven und funktionsreichen Anwendungen (Platform-as-a-Service - PaaS) bereit.

Da keine allgemeinen Standards für Cloud-API existieren, kann der Datenaustausch zwischen Diensten unterschiedlicher Anbieter zu Komplikationen führen. Diese fehlenden Möglichkeiten, virtuelle Maschinen und Daten zwischen den Clouds jederzeit hin und her zu bewegen führen in der Regel zu unerwünschten Abhängigkeiten.

Vorteile durch Programmierschnittstellen

Mit konsequent verwendeten APIs lassen sich große und komplex angelegte Softwarepakete vereinfachen. Zudem können einzelne Funktionen in praktische Module ausgelagert werden. Dadurch entsteht eine klarere Gesamtstruktur des Programms.

Ein modularer Programmcode mit Programmierschnittstellen macht Software weniger fehleranfällig und ermöglicht obendrein eine viel einfachere Wartung. Die Funktion, übergebene Daten vor einer Weiterverwendung zentral zu testen, erhöht die Sicherheit. Tauchen Fehler auf, so müssen nur die jeweiligen Module sowie die an die API weitergeleiteten Daten eingehender geprüft werden.

Eine sauber dokumentierte API erlaubt gegenüber Anwendungen ohne API eine Auslagerung von Programmierarbeiten. So können Entwicklungsarbeiten einzelner Teilbereiche einer Software dank API mit überschaubarem Aufwand an einen externen Dienstleister übertragen werden. Auf diese Weise verbessert sich die Attraktivität und Flexibilität des Gesamtprodukts und daraus ergeben sich meist Wettbewerbsvorteile im Marktumfeld.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45378797 / Definitionen)