API (Programmierschnittstelle)

Was ist ein API?

Bei einem API (Application Programming Interface) handelt es sich um eine Programmierschnittstelle. Diese wird durch ein Softwaresystem zur Verwendung durch andere Systeme bereitgestellt. Das API dient dazu, das Softwaresystem, das es bereitstellt, in andere Programme einzubinden.
Als Webservice werden solche Schnittstellen bezeichnet, die durch Online-Dienste zur Verfügung gestellt werden.

Die Funktionsweise eines API

Eine Programmierschnittstelle wird dann von den Entwicklern eines Softwaresystems bereitgestellt, wenn es für andere Programme möglich sein soll, dieses System zu verwenden. Durch die Nutzung eines API geschieht eine Anbindung an das Softwaresystem. Diese findet auf Quelltext-Ebene statt. Die Nutzung der Schnittstelle erlaubt es, zum Beispiel auf die Festplatte, die Grafikkarte oder auf Datenbanken des Systems zuzugreifen.

Beispiele für ein API

Eine bekannte Programmierschnittstelle ist das Windows Application Programming Interface von Microsoft. Diese ermöglicht die Entwicklung von Programmen, die auf dem Betriebssystem Microsoft Windows laufen.

Die Bereitstellung eines API

Für die Entwickler einer Software ist die Bereitstellung einer Programmierschnittstelle freiwillig. Eine entsprechende Entscheidung wird meist dann getroffen, wenn die betreffende Software für die Nutzung durch andere Systeme optimiert wurde. Gerade Systeme, die gerade für die Nutzung durch andere Software entwickelt wurden, setzen die Etablierung eines API zwingend voraus. Um die tatsächliche Nutzbarkeit sicherzustellen, sollte die Verwendung durch eine ausführliche Dokumentation der Schnittstelle vereinfacht werden.

Wann sollte eine Schnittstelle etabliert werden?

Grundsätzlich bedeutet die Bereitstellung eines API erhöhten Programmier- und Wartungsaufwand. Allerdings kann sie auch vorteilhaft sein. Vor allem vergrößert sich die Wahrscheinlichkeit, dass die Software tatsächlich verwendet wird. Das spielt vor allem dann eine Rolle, wenn es zahlreiche Konkurrenzprodukte gibt. Wenn dritte Entwickler Programme schreiben, die die Software über die bereitgestellte Schnittstelle verwenden, wird auch diese mit den neuen Programmen verbreitet. Je mehr interessante Anwendungsprogramme auf dem Markt verfügbar sind, desto attraktiver wird die Software, deren Schnittstelle durch diese Anwendungsprogramme genutzt wird.

Einsparen von Arbeits- und Programmieraufwand

Ein API kann auch unternehmensintern nützlich sein. Es erspart häufig Programmieraufwand und reduziert auf diese Weise Kosten. Die Software des Unternehmens wird insgesamt übersichtlicher, da bereits vorhandene Systeme genutzt werden, statt dieselben Funktionen für jedes Produkt neu zu schreiben. Mit der richtigen Konzeptionierung der Programmierschnittstelle wird ein Update des Codes deutlich einfacher. Es muss nicht für jedes System einzeln umgesetzt werden, da es ausreicht, nur ein Programm weiterzuentwickeln. Durch die Nutzung der Schnittstelle wird der geänderte Code auch für die anderen Systeme direkt zugänglich.

Anwenderfreundlichkeit von Programmierschnittstellen

Eine Programmierschnittstelle kann auch den Interessen der Anwender dienen. Produkte, die dasselbe API nutzen, verfügen über eine ähnliche Benutzeroberfläche. Damit erleichtern sie dem Anwender die Einarbeitung. Wenn er eines der Systeme kennt, kann er meist auch die anderen mit nur wenig Einarbeitungszeit direkt nutzen.

Entwicklungsstufen eines API

Es ist möglich, verschiedene Entwicklungsstufen bei Programmierschnittstellen zu unterscheiden. Konkret unterschieden wird zwischen stabilen Schnittstellen und sich entwickelnden Schnittstellen. Bei einer stabilen Schnittstelle ist es nicht mehr erforderlich, die Software in Bezug auf diese Schnittstelle zu ändern. Sich entwickelnde Schnittstellen zeichnen sich dadurch aus, dass sich dort verfügbare Operationen mit späteren Versionen der Software ändern können. Nicht jede Änderung eines API hat Auswirkungen auf die Programme, die es verwenden. Eine Änderung, die keine solche Auswirkungen hat, wird als Refactoring bezeichnet.

Typklassen von Schnittstellen

Weiterhin können Schnittstellen in vier verschiedene Typklassen eingeteilt werden. Hierbei handelt es sich um funktionsorientierte Schnittstellen, um objektorientierte Schnittstellen, um dateiorientierte Schnittstellen und um protokollorientierte Schnittstellen.

Funktionsorientierte Programmierschnittstellen

Programmierschnittstellen, die funktionsorientiert sind, verfügen ausschließlich über die Möglichkeit, auf Funktionen als Kommunikationsmittel von Softwaresystemen zurückzugreifen. Umgesetzt wird dieser Grundsatz über sogenannte Handles. Das Handle kommt beim Aufruf einer Funktion zurück. Es dient dazu, anschließend weitere Funktionen aufzurufen.

Objektorientierte Programmierschnittstellen

Objektorientierte Programmierschnittstellen nutzen das Prinzip der Objektorientierung und damit den Klassenaufbau von Programmen. Das Besondere an ihnen ist die Verwendung von Schnittstellenzeigern.

Dateiorientierte Programmierschnittstellen

Die Basis für dateiorientierte Programmierschnittstellen sind die Dateisystemaufrufe. Diese sprechen die Schnittstelle an. Über open, read, write und close ist es möglich, zum Beispiel unter UNIX Gerätetreiber anzusteuern. Mit open wird der Zugriff auf ein Objekt eröffnet. Daten, die an das Objekt gesendet werden sollen, können über den Aufruf write geschrieben werden. Daten, die zu empfangen sind, werden über read gelesen.

Protokollorientierte Programmierschnittstellen

Der Vorteil protokollorientierter Programmierschnittstellen liegt darin, dass ihre Verwendung unabhängig von der Hardware und dem Betriebssystem stattfinden kann. Sie wird in der Praxis häufig mit einer interfaceorientierten oder einer funktionsorientierten Schnittstelle kombiniert, um eine Kapselung zu erreichen.

Öffentliche Programmierschnittstellen

Es gibt verschiedene Möglichkeiten, ein API verfügbar zu machen. Neben einer Zugriffsbeschränkung, die kostenpflichtig sein kann, ist es für Entwickler möglich, öffentliche APIs zu verwenden. In diesem Fall ist ein freier Zugriff möglich. Wenn es sich um einen beliebten Dienst handelt, führt eine solche Verfügbarkeit zu einer großen Popularität. Beispiele für öffentliche APIs und ihre Nutzung sind etwa die Dienste von Wikipedia, Facebook, Twitter, Google Maps oder PayPal.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenlose SEO Analyse


Weitere Inhalte