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. Erfahren Sie mehr über die Programmierschnittstelle in diesem Video:

Please activate JavaScript to view this video.
Video-Link: https://www.youtube.com/watch?v=s7wmiS2mSXY

 

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.

Übrigens
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 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.

Gut zu wissen: Je mehr interessante Anwendungsprogramme am 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 sich bereits vorhandene Systeme nutzen lassen, statt dieselben Funktionen für jedes Produkt neu zu schreiben. Mit der richtigen Konzeptionierung der Programmierschnittstelle ist 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 daher ü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 lässt sich zwischen stabilen Schnittstellen und sich entwickelnden Schnittstellen unterscheiden.

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 Auswirkungen hat, wird als Refactoring bezeichnet.

Typklassen von API 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:

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 nutzen das Prinzip der Objektorientierung und damit den Klassenaufbau von Programmen. Das Besondere an ihnen ist die Verwendung von Schnittstellenzeigern.
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, lassen sich über den Aufruf write schreiben. Daten, die zu empfangen sind, lassen sich über read lesen.
Der Vorteil protokollorientierter Programmierschnittstellen liegt darin, dass ihre Verwendung unabhängig von der Hardware und dem Betriebssystem stattfinden kann. Außerdem lässt sie sich in der Praxis häufig mit einer interfaceorientierten oder einer funktionsorientierten Schnittstelle kombinieren, um eine Kapselung zu erreichen.

Hinweis

Es gibt darüber hinaus 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 und PayPal.

Fazit

APIs haben die moderne Software grundlegend verändert. Der Aufstieg der API-Wirtschaft ermöglicht es daher den Softwarefirmen schnell wichtige Funktionen zu implementieren. Die Entwicklung einer API ist für Programmierer jedoch mit hohem Aufwand verbunden, denn schlecht programmierte Web-APIs können zu Hackerangriffen oder Datendiebstahl führen.


Sie haben noch Fragen?

Kontaktieren Sie uns

Free Account erstellen


Weitere Inhalte